错误:没有匹配的成员函数可调用'push_back'/字符串向量

问题描述

问题是这样的:给定字符串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;
  }
}