在 C++ 中初始化向量?

Initializing vectors in C++?

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

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

这是我目前尝试过的方法:

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

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

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

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

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

查看示例中的 std::vector<int> secondhttp://www.cplusplus.com/reference/vector/vector/vector/

当你在那里的时候,看看 "fill constructor" 的 std::vector。

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

要走的路是:

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

这也应该有效:

vector<MyClass> myVector(size);

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

MyClass 应该有一个默认的构造函数,或者一个不带任何参数来做你想做的事情的构造函数。

然后你可以打电话:

vector <MyClass> myVector (vector_size);