您好,登錄后才能下訂單哦!
C++中如何使用auto表示多維數組指針,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
多維數組的指針
多維數組是一種常見的數據結構,實際上是數組的數組。這個含義雖然很好理解,但是在定義操作數組數據的指針時卻有點麻煩。假設有下面的二維數組。
int matrix[10][10];
定義指向其中一行的指針時,下面那種方式是對的呢?
int *row[10];
int (*row)[10];
答案是第二種。這里硬記當然是一種辦法,但是也可以用換一個方式看代碼:
int* row[10];
int (*row)[10];
第一種情況是指針的數組,剩下的就是數組的指針了。
C++11的處理方式
C++11以后,有了auto描述符,有了begin/end函數,定義多維數組指針時就可以容易一些了,例如可以這樣寫代碼:
int matrix[10][10];
int number = 1;
for(auto row = begin(matrix); row != end(matrix); ++row)
{
for(auto data = begin(*row); data != end(*row); ++data){
*data = number++;
}
}
因為row是數組指針,而begin和end的要求的是引用類型,所以在調用begin和end函數取得數據指針時使用的參數是*row,而不是row。
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。