假設有這樣的乙個vector:(注意,這種列表初始化的方法是c++11中新增語法)
vectorvallist = ;
需要輸出這個vector中的每個元素,測試原型如下:
void showvec(const vector& vallist)
int main(int argc, char* argv)
;showvec(vallist);
return 0;
}方法零,對c念念不捨的童鞋們習慣的寫法:
void showvec(const vector& vallist)}或者
void showvec(const vector& vallist)
}方法一,大家喜聞樂見的for迴圈迭代器輸出
void showvec(const vector& vallist)
}或者使用c++新增的語義auto,與上面差不多,不過能少打幾個字:
void showvec(const vector& vallist)
}方法二,for_each加函式:
template
void printer(const t& val)
void showvec(const vector& vallist)
方法三,for_each加仿函式:
template
struct functor
};void showvec(const vector& vallist)
方法四,for_each加lambda函式:(注意:lambda為c++11中新增的語義,實則是乙個匿名函式)
void showvec(const vector& vallist));}
方法五,for區間遍歷:(注意,for區間遍歷是c++11新增的語法,用於迭代遍歷資料列表)
for (auto val : vallist)
**:
vector 遍歷 C 有關for的新式遍歷
無法在vector的新式for遍歷中,pushback操作 在用新式for遍歷vector時發現乙個坑,如下 我偶然發現,兩個紅框中的for迴圈結果不一樣。逐步分析來看,兩個for迴圈都為遍歷陣列copyawser,但結果卻不同,如下 這是第一種for迴圈 這是第二種for迴圈 從輸出結果看,兩種f...
vector 遍歷及下標訪問
vector 常規的遍歷方法有以下方法 1.for 遍歷 vectorthevector vector iterator theiterator for theiterator thevector.begin theiterator thevector.end theiterator 2.for e...
vector 賦值方法
include include using namespace std void main vector ivec3 10 for vector int iterator iter ivec3.begin iter ivec3.end iter 下面兩種方法最佳,他們使用標準庫定義的操作,無須再定義...