1. ホーム
  2. c++

[解決済み] 配列をベクトルに変換する最も簡単な方法は何ですか?

2022-11-30 05:09:39

質問

配列をベクトルに変換する最も簡単な方法は何ですか?

void test(vector<int> _array)
{
  ...
}

int x[3]={1, 2, 3};
test(x); // Syntax error.

最も簡単な方法で、int型配列からvectorにxを変換したい。

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

を使用します。 vector のコンストラクタを使用します。ポインタが有効なイテレータであることに注意し、配列からポインタへの暗黙の変換を使用します。

int x[3] = {1, 2, 3};
std::vector<int> v(x, x + sizeof x / sizeof x[0]);
test(v);

または

test(std::vector<int>(x, x + sizeof x / sizeof x[0]));

ここで sizeof x / sizeof x[0] は明らかに 3 であることは明らかです。これは配列の要素数を取得するための一般的な方法です。ちなみに x + sizeof x / sizeof x[0] は一つの要素 を超えて を指します。