3

こんにちは、私は C++ の初心者です。コードが本でコピーされていても、{} を使用してベクターを初期化することはできません。たとえば、私がこれらを行うとき

vector <string> articles {"a", "an", "the"};

vector <string> articles = {"a", "an", "the"};

これらのエラーメッセージをそれぞれ受け取りました:

Error: expected a ";"

Error: initialization with "{...}" is not allowed for object of type "std::vector<std::string, std::allocator<std::string>>"

誰か助けてくれませんか?私が見つけることができなかったのは単純な間違いであるべきだと思います。

4

1 に答える 1

2

uniform initializationは C++11 以降に導入されているため、この新機能をサポートする最新のコンパイラを使用する必要があります。

コンパイラがこの機能をサポートしていない場合は、次のことを試してください。

string arrOfString[3] =  {"a", "an", "the"};
vector<string> articles(arrOfString, arrOfString +3);

編集

MSVC11を使用すると、次のことができます(@chrisの厚意により):

string arrOfString[3] =  {"a", "an", "the"};
vector<string> articles(std::begin(arrOfString), std::end(arrOfString));
于 2013-05-24T02:48:47.123 に答える