前提・実現したいこと
現在、c++で構造体使用したプログラムを書いており、構造体のメンバへのアクセスへ通常の配列ではなく、vectorクラスを使用しています。そのときにpush_back関数を使って、メンバに値を代入したいのですが、エラーが出てしまい、うまくいきません。最初から要素数を指定せず、push_backを使ってメンバにアクセスする方法はないのでしょうか。
#発生している問題・エラーメッセージ
エラーメッセージ エラー (アクティブ) E0135 class "std::vector<StaffInfo, std::allocator<StaffInfo>>" にメンバー "name" がありません エラー C2039 'name': 'std::vector<StaffInfo,std::allocator<StaffInfo>>' のメンバーではありません #該当のソースコード #include <iostream> #include <string> #include <vector> using namespace std; struct StaffInfo{ string name; int age; int height; }; int main() { vector<StaffInfo>data; int i = 0; data.name.push_back("suzuki"); //エラー data.age.push_back(20); //エラー data.height.push_back(170); //エラー vector<StaffInfo>data2(10); //要素数指定 正常だが、vectorの意味を感じない data2[i].name = "suzuki"; data2[i].age = 20; data2[i].height = 170; return 0; } ### 試したこと ここに問題に対して試したことを記載してください。 ### 補足情報(FW/ツールのバージョンなど) visual studio 2019
回答4件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/05/05 07:25