C++ 如何使用第二个向量搜索向量?

C++ 如何使用第二个向量搜索向量?,c++,vector,C++,Vector,我目前正在读取的文本文件中有一个向量。目前我可以很好地搜索这个文本文件,并从每个艺术家那里获得矢量乐队(一个艺术家演奏过的乐队列表,之所以是矢量乐队,是因为每个艺术家演奏过不同数量的乐队)。在找到一个乐队成员后,我想从这些艺术家为之演奏的乐队列表中专门重新搜索。例如,如果我搜索“Nirvanna”,“Dave Grohl”就会出现。因为他也为foo fighter打球,所以我想搜索foo fighter,而不必返回代码的开头 这是收到的错误 错误C2678:二进制“==”:未找到接受类型为std

我目前正在读取的文本文件中有一个向量。目前我可以很好地搜索这个文本文件,并从每个艺术家那里获得矢量乐队(一个艺术家演奏过的乐队列表,之所以是矢量乐队,是因为每个艺术家演奏过不同数量的乐队)。在找到一个乐队成员后,我想从这些艺术家为之演奏的乐队列表中专门重新搜索。例如,如果我搜索“Nirvanna”,“Dave Grohl”就会出现。因为他也为foo fighter打球,所以我想搜索foo fighter,而不必返回代码的开头

这是收到的错误

错误C2678:二进制“==”:未找到接受类型为
std::basic_string
的左侧操作数的运算符(或没有可接受的转换)

使用名称空间std;
字符串forname;
串姓;
矢量带;
矢量纽班;
字符串输入;
if(查找(band.begin(),band.end(),input)!=band.end())
{

你能给我们看一下这些对象的声明吗?错误与代码有什么关系?我在任何地方都看不到
=
。错误指的是哪里?你说你在文本文件中有一个向量,但代码似乎与文本文件没有任何关系。你希望
find
行做什么?你似乎在讨论d返回值,那么为什么在if语句中为
newband
赋值呢?你能告诉我们什么在起作用,然后是什么不起作用吗?@HeathRaftery
=
是由于调用
find(band.begin(),band.end(),newband)实例化
std::find
失败造成的
你认为两个元素序列
{“涅磐”,“Foo Fighters”}
与单个元素
“涅磐”
或单个元素
“Foo Fighters”相同吗
?请看一看,注意。它需要排序输入扫描您向我们显示这些对象的声明?错误与代码的关系如何?我在任何地方都看不到一个
=
。错误指的是什么?您说您在文本文件中有一个向量,但代码似乎与文本文件没有任何关系。您希望看到什么他是
find
行吗?您似乎放弃了返回值,那么为什么要在if语句中将
band
分配给
newband
?您能告诉我们哪些工作正常,哪些不正常吗?@HeathRaftery
=
是由于调用
find(band.begin(),band.end()实例化
std::find
失败造成的你认为两个元素的序列<代码>{“涅磐”,“福斗士”}
与单个元素<代码>“涅磐”或单个元素<代码>“福斗士”
相同吗?注意,它需要分类输入
using namespace std; 
string forname; 
string surname; 
vector <string> band; 
vector <string> newband; 
string input;

if (find(band.begin(), band.end(), input) != band.end())
{
    cout << forname << " " << surname << endl;
    cout << "Played for: ";
    ostream_iterator<string> output_iterator(cout, " ");
    copy(band.begin(), band.end(), output_iterator);
    cout << " " << endl;
    cout << " " << endl;
    newband = band;
}

if (find(band.begin(), band.end(), newband) != band.end())
{
    cout << forname << " " << surname << endl;
    cout << "Played for: ";
    ostream_iterator<string> output_iterator(cout, " ");
    copy(band.begin(), band.end(), output_iterator);
    cout << " " << endl;
    cout << " " << endl;
}