我有一个名为vector_size的变量。该变量的值由用户在运行时输入。我也有一个MyClass类。
我想创建一个MyClass的向量。我希望向量具有vector_size元素。我该怎么做?
这是我迄今为止所尝试过的:
vector <MyClass> myVector (vector_size) = MyClass();
上面的代码不起作用。我如何制作vector_size的矢量,并初始化每个元素?
请注意,我不想只是&#34;预留空间&#34;对于vector_size元素。我希望使用vector_size元素填充向量,并且每个元素都需要使用构造函数进行初始化。
基本上,我想在一行中执行以下操作:
vector <MyClass> myVector;
for (int counter = 0; counter < vector_size; counter++) {
myVector.pushBack (MyClass());
}
答案 0 :(得分:7)
要走的路是:
vector<MyClass> myVector(size, MyClass());
这也应该有效:
vector<MyClass> myVector(size);
第一个变体采用将用于构造向量元素的对象,第二个变体将使用默认构造函数初始化它们,因此在这种情况下,两个变体应该是等效的。
答案 1 :(得分:2)
MyClass
应该有一个默认的构造函数,或者一个不带任何参数来执行你想要的构造函数。
然后你可以打电话:
vector <MyClass> myVector (vector_size);
答案 2 :(得分:1)
在此示例中查看std::vector<int> second
:http://www.cplusplus.com/reference/vector/vector/vector/
当你在那里看看&#34;填充构造函数&#34;对于std :: vector。
对于您的情况:std::vector<MyClass> v(vector_size, MyClass());