1. ホーム
  2. c++

[解決済み] ポインタのベクトルを初期化する方法【非公開

2022-02-07 05:06:33

質問

C++のプログラムを作っているのですが、ポインターのベクトルを初期化する必要があります。ベクターを初期化する方法は知っていますが、ポインターで満たされたベクターとして初期化する方法を教えてくれる人がいれば、それは素晴らしいことです。

どのように解決するのですか?

ポインタのゼロサイズ・ベクトル。

std::vector<int*> empty;

NULLポインタのベクトル。

std::vector<int*> nulled(10);

新しく割り当てられたオブジェクトへのポインタのベクトルです(実際には初期化ではありませんが)。

std::vector<int*> stuff;
stuff.reserve(10);
for( int i = 0; i < 10; ++i )
    stuff.push_back(new int(i));

新しく割り当てられたオブジェクトへのポインタのベクトルを初期化します(C++11 が必要)。

std::vector<int*> widgets{ new int(0), new int(1), new int(17) };

3をよりスマートにしたもの。

std::vector<std::unique_ptr<int>> stuff;
stuff.reserve(10);
for( int i = 0; i < 10; ++i )
    stuff.emplace_back(new int(i));