C++でvectorを用いた配列の初期化ができない
C++でvectorを用いた配列の初期化を行いたいのですが、
以下の書き方をするとvscode上でエラーが発生します。
vector<string> names = {"itika", "nino", "miku", "yotsuba", "itsuki"}
発生している問題・エラーメッセージ
'{...}' での初期化は型 "std::__1::vector<std::__1::string, std::__1::allocator<std::__1::string>>" のオブジェクトに対しては許可されていません
該当のソースコード
C++
1vector<string> names = {"itika", "nino", "miku", "yotsuba", "itsuki"}
試したこと
調べたところ、C++11以上で導入された記法のようなので、自分の環境でC++ -v
したところ、以下の様な出力となり、問題ないようでした。
Apple clang version 13.0.0 (clang-1300.0.29.3) Target: arm64-apple-darwin20.6.0 Thread model: posix InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
補足情報(FW/ツールのバージョンなど)
PC: apple silicon M1 macです。
vscodeで再現しました。
コンパイルはしてみましたか?
直したいのはvscodeの編集画面でのエラーだけですか?
コンパイルをした場合でも同様のエラーが出力されます????♂️
```
error: non-aggregate type 'vector<std::string>' (aka 'vector<basic_string<char> >') cannot be initialized with an initializer list
```
ただ、コンパイル時に
```
-std=c++11
```
オプションを指定してあげると問題なくコンパイル可能です。
ですので、エディタ上でのエラーを消してあげることが目的です。
回答2件
あなたの回答
tips
プレビュー