/* auto賦值只是暫時有效,iterator賦值才是真實有效地*/
/* 不只是vector,所有能用迭代器的容器應該都具有這個特點*/
1 #include<iostream> 2 #include<vector> 3 using namespace std; 4 int main() 5 { 6 vector<int> v; 7 for(int i=0;i<5;i++) 8 v.push_back(i); 9 for(auto i:v)/* 用auto遍歷時,對元素賦值只是當場有效。即退出循環便無用*/ 10 { 11 i=7; 12 cout<<i<<endl; 13 } 14 cout<<"上面是auto賦值后元素暫時的值\n"; 15 for(auto i:v) 16 { 17 cout<<i<<endl; 18 } 19 cout<<"上面是auto賦值結束后,元素實際的值"; 20 for(vector<int>::iterator it=v.begin();it!=v.end();it++) 21 { 22 *it=6; 23 cout<<*it<<endl; 24 }/*迭代器賦值才是真實有效*/ 25 cout<<"上面是迭代器對元素賦值后元素的值\n"; 26 for(auto i:v) 27 { 28 cout<<i<<endl; 29 } 30 cout<<"下面是迭代器賦值結束后,元素實際的值,可見這種賦值真實有效\n"; 31 }