c++遍歷陣列的多種方式

战点發表於2024-09-05

方法一:普通的for迴圈

for (int i = 0; i < sizeof(a) / sizeof(a[0]); i++) {
        cout << a[i] << " ";
    }

方法二:指標陣列

int *p[len];
for(int i = 0; i < len; i++){
        p[i] = &a[i];
        cout << *p[i];
} 
————————————————————————————————————
int *p = a;	
for(int i = 0; i < len; i++){
    cout << *(p + i);
}

方法三:陣列指標(行指標)

 int (*p)[len];  // 注意陣列指標的宣告必須使用常量,確保它指向的陣列的大小在編譯時就已經確定,不能改變
    p = &a;
    for (int i = 0; i < len; i++) {
        cout << p[0][i] << endl;
        cout << *(*(p + 0) + i) << endl;
    }

方法四:範圍for迴圈

for (auto i: a){  // i為臨時變數,只有引用型別變數可以修改原陣列
    cout << i << endl;
}
_____________________
for (auto& i: a){  // auto能夠自動推導變數型別,引用型別除外
    cout << i << endl;
}

方法五:迭代器遍歷

 for(auto i = begin(a); i != end(a); i++){  // 成員函式begin()和end()來獲取遍歷開始地址和遍歷結束地址,同時,迭代器使用之後會自動回收
        cout << *i << endl;
    }

相關文章