结构的搜索向量

问题描述 投票:-1回答:1

我正在尝试在结构向量中找到一个字符串。但是我一直收到错误消息,错误消息的时间太长,因此我将其上传到外部。它的一部分是

“错误:'operator =='不匹配(操作数类型为'char'和'const std :: __ cxx11 :: basic_string'){return * __ it == _M_value; }“

我当前使用的代码是:

struct constants {
    std::string name, lastname;
    float salary=0;
};

void searchPerson(const std::vector<constants> &search) {
    using namespace std;
    vector<constants>name;
    string searchTerm;
    cout << "Enter last name of the person you wish you lookup." << "\n";
    cin >> searchTerm;
for (size_t k=0; k<name.size(); k++){
    if (std::find(name[k].lastname.begin(), name[k].lastname.end(), searchTerm) != name[k].lastname.end())
    {
        cout << "Test" << "\n";
    }
  }
}

我似乎无法正常工作,我不知道怎么了。最终目标是让用户输入一个人的姓氏,如果程序中存储了一个具有该姓氏的人,它将打印有关该人的所有信息(名字,姓氏和薪水)。我可能还会使用相同的搜索技术从程序中删除一个人。

我只需要简单地使用for循环就可以使它正常工作,但是绝对有理由使用find语法,下面的代码片段令人惊奇。

for (size_t i=0; i<name.size(); i++) {
    if (name[i].lastname== searchTerm)
        cout << "Test" << "\n";
}

https://pastebin.com/mk0pTWgr

c++ string search vector struct
1个回答
0
投票
© www.soinside.com 2019 - 2024. All rights reserved.