在Vector中按特定顺序添加2个数组



假设我有两个字符串数组

string firstName[John, Jane, Jason];
string middleName[L, M, N];

和一个字符串向量

vector<string> vec;

是否有一种方法可以将它们以特定的顺序添加到向量中,以便每个中间名与每个名字对应?因此,当我打印出向量时,它会打印为:

约翰·L

简M

Jason N

将它们添加到向量中,我有:

vector<string> vec;
string firstName[] ={"John","Jane","Jason"};
int N = sizeof(firstName)/ sizeof(firstName[0]);
for(int i=0; i<N;i++)
p.push_back(firstName[i]);
string middleName[]={"L","M","N"};
N = sizeof(middleName)/ sizeof(middleName[0]);
for(int i=0; i<N;i++)
p.push_back(middleName[i]);

但是很明显它只打印了一行"John Jane Jason L M N">

由于声誉原因无法添加评论。
正如Johnny Mopp的评论所说,答案是

确保它们大小相同后:for (int i=0; i < N; i++) p.push_back(firstName[i] + " " + middleName[i]);

要回答OP的最后一条评论:
你当然需要知道这是谁的姓。如果有n个人和m(≤n)个姓氏,你有那些有姓氏的人的下标,那么你只需要修改向量中的字符串。
例如,如果向量p(如上所述)的大小为n,并且您有一个数组LastNamePositions给出具有姓氏的人的位置,而LastNames存储姓氏,则:

for (int i=0; i<LastNamePositions.size(); i++) {
p[LastNamePositions[i]] = p[LastNamePositions[i]]+" "+LastNames[i];
}