C++ 双向量<;字符串>;串联

C++ 双向量<;字符串>;串联,c++,string,vector,concatenation,C++,String,Vector,Concatenation,我有两个向量,如下所示: A ={"Sam", "Jordan", "Mike"} B ={"Smith", "Lancaster", "Horgen"} A ={"SamSmith", "JordanLancaster", "MikeHorgen"} 连接后,它们应该如下所示: A ={"Sam", "Jordan", "Mike"} B ={"Smith", "Lancaster", "Horgen"} A ={"SamSmith", "JordanLancaster", "MikeH

我有两个向量,如下所示:

A ={"Sam", "Jordan", "Mike"}
B ={"Smith", "Lancaster", "Horgen"}
A ={"SamSmith", "JordanLancaster", "MikeHorgen"}
连接后,它们应该如下所示:

A ={"Sam", "Jordan", "Mike"}
B ={"Smith", "Lancaster", "Horgen"}
A ={"SamSmith", "JordanLancaster", "MikeHorgen"}
基本上,你把名字和姓氏结合起来。 如何做到这一点?

for(size\u t I=0;Ifor (size_t i = 0; i < A.size() && i < B.size(); ++i)
   A[i] += B[i];
A[i]+=B[i];
现在
A
向量包含所需的输出。

使用
std::transform
():


通过在两个向量上迭代,并在每一步中连接字符串,然后将结果赋回到
A
,可以很容易地完成该操作

 typedef vector<string>::iterator VIter;

    for(VIter it1=A.begin(), it2=B.begin(); it1 != A.end(), it2 != B.end(); ++it1, ++it2)
    {
            *it1 = *it1 +*it2;
    }
typedef向量::迭代器VIter;
对于(VIter it1=A.begin(),it2=B.begin();it1!=A.end(),it2!=B.end();++it1,++it2)
{
*it1=*it1+*it2;
}

你有两个for循环,我试过了,它是这样的:SamSmith,SamLancaster,SamHorgen,Jordanmith,Jordannanlancaster,JordanHorgen,MikeSmith,MikeLancaster,MikeHorgen“这里不允许自动”,我不知道那是什么means@JY078您的编译器不支持通用lambda。明确指定参数类型(例如,
std::string
)@JY078,是的,如上所述,这只是为了方便起见,在C++14中工作。