问题描述
问题是这样的:给定字符串a1和a2的两个数组,按a1字符串的字典顺序(即a2字符串的子字符串)返回排序的数组r。 例如: 输入:a1 = arp,实况,很强。 a2 =活泼,活泼,竖琴,敏锐,阿姆斯特朗。 返回arp,实时显示,强健。
我有以下类,当我编译代码时,出现错误“错误:没有匹配的成员函数来调用'push_back'”。而且我只是想不出问题所在。
PS:给出了成员函数的类和声明,我必须按原样使用它们解决问题。
class WhichAreIn {
public:
static std::vector<std::string> inArray(std::vector<std::string>& array1,std::vector<std::string>& array2);
};
std::vector<std::string> WhichAreIn::inArray(std::vector<std::string>& array1,std::vector<std::string>& array2)
{
int lengthArray1 = size(array1);
std::vector<std::string> r; //resulting string
for (int i = lengthArray1; i > 0; i--) {
auto matchFound = find(array2.begin(),array2.end(),array1[i]);
r.push_back(matchFound);
break;
}
return r;
}
解决方法
matchFound
是一个迭代器,必须取消引用。
for(int i=lengthArray1;i>0;i--){
auto matchFound= find(array2.begin(),array2.end(),array1[i]);
if (matchFound != array2.end()) {
r.push_back(*matchFound);
break;
}
}