std::vectorであるクラスフィールドがあります。このベクトルに含める要素の数を知っています:N。N個の要素でベクトルを初期化するにはどうすればよいですか?
28011 次
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 に答える