1. ホーム
  2. c++

[解決済み】構造体のベクター初期化について

2022-01-17 14:55:26

質問

を使用して、構造体のベクトルに値を追加する方法を知りたいです。 push_back メソッド

{{コード

では次に、どのように要素を追加していけばいいのでしょうか。

文字列name(サブジェクト名)を初期化する関数があります。

struct subject
{
  string name;
  int marks;
  int credits;
};


vector<subject> sub;

機能呼び出し

void setName(string s1, string s2, ...... string s6)
{
   // how can i set name too sub[0].name= "english", sub[1].name = "math" etc

  sub[0].name = s1 // gives segmentation fault; so how do I use push_back method?

  sub.name.push_back(s1);
  sub.name.push_back(s2);
  sub.name.push_back(s3);
  sub.name.push_back(s4);

  sub.name.push_back(s6);

}

解決するには?

vectorを作成し、push_back要素を作成し、以下のように修正する。

setName("english", "math", "physics" ... "economics");

ベクトルへのアクセスは、そのインデックスのベクトル内に要素が存在するまで、[#]を使用することはできません。この例では、[#]を入力し、その後にそれを変更します。