5

我有一个类字段,它是一个 std::vector。我知道我希望这个向量包含多少个元素:N。如何用 N 个元素初始化向量?

4

3 回答 3

7

std::vector有一个构造函数声明为:

vector(size_type N, const T& x = T());

您可以使用它来std::vector构造N. x的默认值x是初始化的值T(如果T是具有默认构造函数的类类型,则值初始化是默认构造)。

std::vector使用此构造函数初始化数据成员很简单:

struct S {
    std::vector<int> x;
    S() : x(15) { }
} 
于 2011-03-14T04:12:41.490 回答
7
class myclass {
   std::vector<whatever> elements;
public:
   myclass() : elements(N) {}
};
于 2011-03-14T04:13:13.637 回答
1

所有允许您指定大小的构造函数也会调用元素的构造函数。如果效率是最重要的,您可以使用reserve()成员函数来保留大小。这实际上不会创建任何元素,因此效率更高。但是,在大多数情况下,通过向量构造函数提供大小就可以了。

于 2011-03-14T04:13:29.857 回答