0
我的目标是创建TeamV类型的“TeamS”向量。 TeamV应该有4个部分的数据。例如:TeamV [0] = teamID,member1,member2,member3。 我找到了一种获取ID数组并分发到TeamV向量的方法。但我无法同时分发3名团队成员。我该怎么办?从二维数组转换为矢量
#include <iostream>
#include <vector>
using namespace std;
const int NUM_TEAMS = 4;
const int NUM_MEMBERS = 3;
struct TeamS{
int ID;
string teamMembers[3];
};
void Initialize (vector <TeamS> & TeamV, const int id[],
const string m[][NUM_MEMBERS], int arraySize){
for (int i = 0; i<NUM_TEAMS;i++){
for (int x=0; x<NUM_TEAMS;x++){
for (int y = 0; y<NUM_MEMBERS;y++){
TeamV.push_back({id[i],m[x][y]});
}
}
}
}
int main(){
vector <TeamS> TeamV; //content of arrays below should go in to this vector
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"}
};
Initialize(TeamV, ID, MEMBERS, NUM_TEAMS*NUM_MEMBERS);
}
你应该做的是初始化数组成员为'{a,b,c}'。 –
赞[this](https://ideone.com/q4YsvQ)?或者你是否想要复制任意数组? – Drop
我想你在这里犯了一个错误:'TeamV.push_back({id [i],m [x] [y]})'。尽管TeamS结构需要3名团队成员,但您可以push_back ID和1个团队成员(x和y位置)。所以当他传递TeamS结构时,@Drop的解决方案很好。 –