Я хочу провести тщательный поиск вектора, чтобы увидеть, появляется ли элемент. Как только этот элемент появляется вместе с другими, я хочу провести повторный поиск в оригинале, чтобы увидеть, появляется ли этот второй элемент где-то еще внутри вектора. Конечный результат должен показать первый найденный элемент, а затем информацию о том, где появляется второй элемент.
void searchband()
{
ifstream artist("newartist.txt");
string SBand;
cout << "Please enter the band you want to seach" << endl;
cin >> SBand;
system("CLS");
while (artist >> forname >> surname >> bandnum)
{
band.clear();
for (int i = 0; i < bandnum; i++)
{
string tmp;
artist >> tmp;
band.push_back(tmp);
}
artist >> role;
if (find(band.begin(), band.end(), SBand) != 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;
}
system("pause");
cin.get();
main();
}
}
Получается код ошибки
ошибка C2678: двоичный файл '=='
: не найден оператор, который принимает левый операнд типа std::basic_string<char,std::char_traits<char>,std::allocator<char>>
(или нет приемлемого преобразования)
Я думаю, это может быть потому, что
vector<string> = newband
но это единственный способ передать векторную информацию - это другой вектор