在C++中初始化向量

Initializing vectors in C++?

本文关键字:向量 初始化 C++      更新时间:2023-10-16

我有一个名为vector_size的变量。此变量的值由用户在运行时输入。我还有一个班级MyClass。

我想创建一个 MyClass 的向量。我希望向量具有vector_size元素。我该怎么做?

这是我到目前为止尝试过的:

vector <MyClass> myVector (vector_size) = MyClass();

上面的代码不起作用。我将如何制作一个vector_size向量,并初始化每个元素?

请注意,我不想只为vector_size元素"保留空间"。我希望向量填充vector_size元素,并且每个元素都需要使用构造函数进行初始化。

本质上,我想在一行中执行以下操作:

vector <MyClass> myVector;
for (int counter = 0; counter < vector_size; counter++) {
    myVector.pushBack (MyClass());
}

要走的路是:

vector<MyClass> myVector(size, MyClass());

这也应该有效:

vector<MyClass> myVector(size);

第一个变体采用一个将用于构造向量元素的对象,第二个变体将使用默认构造函数初始化它们,因此在这种情况下,两个变体应该是等效的。

MyClass应该有一个默认的构造函数,或者一个不需要任何参数来执行你想要的构造函数。

然后你可以打电话:

vector <MyClass> myVector (vector_size);

查看以下示例中的std::vector<int> second:http://www.cplusplus.com/reference/vector/vector/vector/

当你在那里时,看看std::vector的"填充构造函数"。

对于您的情况:std::vector<MyClass> v(vector_size, MyClass());