定義了vector變量,在使用時直接用了等號賦值,后來發現有問題,就查了一下vector怎么賦值?
說明:vector是一個構造對象,不能直接使用=符號進行復制,必須迭代每個元素來復制。或者重載=操作符。
賦值方法:大致有以下幾種方法實現用於把一個vector復制給另一個vector:
//方法1: vector<int > v1(v2);//聲明 //方法2:使用swap進行賦值: vector<int > v1();v1.swap(v2);//將v2賦值給v1,此時v2變成了v1 //方法3:使用函數assign進行賦值: vector<int > v1;//聲明v1 v1.assign(v2.begin(), v2.end());//將v2賦值給v1 //方法4:使用循環語句賦值,效率較差 vector<int >::iterator it;//聲明迭代器 for(it = v2.begin();it!=v2.end();++it){//遍歷v2,賦值給v1 v1.push_back(it); }