[C++] Вектор инициализации структур


Answers

Если вы хотите использовать новый текущий стандарт, вы можете сделать это:

sub.emplace_back ("Math", 70, 0);

или

sub.push_back ({"Math", 70, 0});

Для них не требуется построение subject умолчанию.

Question

Я хочу знать, как я могу добавить значения в свой вектор структур с помощью метода push_back

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);

}

Вызов функции

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