c++11新引入了類似如下分隔的遍歷方式
for(auto iter : vectortemp)
使用的時候需要注意iter變數是否需要加上引用,不然可能導致程式執行的效果不符合自己的預期。例子如下
typedef std::mapmap_test_temp;
typedef std::vectorvec_test;
vec_test vectest;
vectest.resize(8);
for (int i = 0; i < 10; i++)
// 迴圈1
for (auto iter : vectest)
// 迴圈2
for (auto& iter : vectest)
目的是要清理vector中map的資料,但是迴圈1執行後vectest中的資料並沒有被清理掉,因為iter相當是對應map的乙份拷貝,並不會對實際的map物件產生影響,因此要注意新增引用才能實現對應的功能。 基於範圍的for迴圈 C 11
本篇部落格會寫c 11標準的中的乙個新特性範圍for,並解釋它的使用方法。那麼什麼是範圍for呢?在使用早期c 標準的遍歷乙個陣列,我們會使用這段 void testfor for int i 0 i sizeof array sizeof array 0 i 普通迴圈 for int p arra...
C 11學習筆記2之vector
include include include using namespace std int main vb有1個元素,值為10 vectorvc 10,1 vc有10個元素,每乙個的值為1 vectorvd vd有2個元素,分別為10,1 return 0 是用來構造vector物件的 是用來列...
C11簡潔之道 迴圈的改善
在c 98 03中,通過for迴圈對乙個容器進行遍歷,一般有兩種方法,常規的for迴圈,或者使用中的for each方法。for迴圈遍歷 void func void for each方法 void vfunccall int n void func2 void for each相比一般的for迴圈...