[問題] [c++]vector back()問題

看板C_and_CPP作者 (allen)時間10年前 (2014/02/21 21:18), 編輯推噓0(001)
留言1則, 1人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) g++ 錯誤結果(Wrong Output): 第17行:vec2.back().push_back(900); 依code來講不是應該等於vec1.push_back(900);嗎? 但是vec1.size()在經過17行後,卻沒有增加. 想詢問各位高手,是否哪裡問題,或是小魯觀念有錯. 程式碼(Code):(請善用置底文網頁, 記得排版) 1 #include<iostream> 2 #include<vector> 3 using namespace std; 4 typedef vector<vector<int> >::iterator llter; 5 typedef vector<int>::iterator lter; 6 int main(int argc,const char* argv[]) 7 { 8 vector<int>vec1; 9 vector<vector<int> >vec2; 10 vec1.push_back(90); 11 vec1.push_back(100); 12 vec2.push_back(vec1); 13 vec2.push_back(vec1); 14 cout<<"vec1.size()"<<vec1.size()<<endl; 15 vec2.back().push_back(900); 16 cout<<"vec1.size()"<<vec1.size()<<endl; 17 return 0; 18 } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 1.168.104.17

02/21 21:22, , 1F
vec2 裡面的是 vec1 的 copy,不是 vec1 的 ref
02/21 21:22, 1F
文章代碼(AID): #1J1r8cjQ (C_and_CPP)