给我一个向量初始化的提示或(答案)

Give me a hint or (Answer) for vector initialization

本文关键字:提示 答案 初始化 一个 向量      更新时间:2023-10-16

我真的很难过,我不知道该怎么做。我有这个,

struct TeamS
{
    int ID;
    string MEMBERS[3];
};
void Initialize (vector <TeamS> & TeamV, const int id[], 
     const string m[][NUM_MEMBERS], int arraySize);

int main()
{
    vector <string> TeamV;
//not sure TeamV is supposed to be int or string
const int ID[NUM_TEAMS] = { 123, 321, 456, 789 };
const string MEMBERS[NUM_TEAMS][NUM_MEMBERS] =
{
    { "Sarah", "Joe", "John" },
    { "Chris", "Kevin", "James" },
    { "Tom", "Kim", "Emily" },
    { "Jill", "Jason", "Jim" }
};
cout << "Starting Initialization" << endl;
cout << "Ending   Initialization" << endl;
}

我必须使用这个原型即:

void Initialize (vector <TeamS> & TeamV, const int id[], 
     const string m[][NUM_MEMBERS], int arraySize);

通过空矢量和阵列

例如,矢量的第一个元素将具有团队id:123和成员:Sarah、Joe和John
矢量的第二个元素将具有团队id:321和成员:Chris、Kevin和James,依此类推

我该怎么做??

我必须使用push_back吗??

还是比我想象的要容易得多??

我认为你想让TeamV成为TeamS类型的向量,这样TeamV中的每个元素都可以包含关于团队的信息(ID和MEMBERS)。使用push_back()方法听起来是个好主意,试试

vector <string> TeamV;==>这必须是'vector<TeamS> TeamV;'

若要将元素添加到向量中,首先需要构造单独的条目。类似于:

TeamV.push_back(TeamS());
TeamV[0].ID = id[0];
std::copy(m[0], m[0] + NUM_MEMBERS, TeamV[0].MEMBERS);