//Using g++ and ubuntu.
#include <vector>
using namespace std;
定義一個類:C++有構造函數的類向量
class foo(){
(...)
foo(int arg1, double arg2);
}
構造:
foo::foo(int arg1, double arg2){
(...) //arrays whose length depend upon arg1 and arg2
}
我願做這樣的事情:
vector<foo> bar(10); //error: no matching function for call to 'foo::foo()'
bar[0] = new foo(123, 4.56);
(...)
替代方法(我喜歡更少)是使用push_back:
vector<foo> bar; //works
bar.push_back(new foo(123, 4.56)); //throws similar error.
//Omitting the "new" compiles but throws a "double free or corruption (fasttop)" on runtime.
我想要構造不同的向量的不同元素,所以我不想使用「重複序列構造函數」。 應該做什麼?
+1的一個很好的答案。如果可以的話,我想給出額外的+1,因爲不是說你應該總是使用std :: vector,但是你應該總是使用vector。 – Simon 2010-08-09 06:23:57