微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决错误:没有匹配的成员函数可调用'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;
  }
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。