Your vector is defined as having type Bar but you are trying to compare an object of type Bar with a string. If there is no such an overload operator == in the class then you can not do that.
#include <iostream>
#include <vector>
#include <windows.h>//För att använda system "cls" och sleep
#include <limits> //För att använda numeric_limits
#include <algorithm>
usingnamespace std;
class Film
{
public:
// Deklarerar variablerna för de data som behövs
string Titel;
string Media;
// Denna funktion skriver ut filmen på skärmen
void skrivFilm()
{
cout << endl;
cout << "Titel: " << Titel << endl; // Skriver ut filmens titel
cout << "Media: " << Media << endl; // Skriver ut filmens media
}
};
int main()
{
setlocale(LC_ALL, "swedish"); // Denna funktion låter mig använda svenska
vector<Film> Arkiv; // Skapa en vector av typen Film
char menyVal; // Denna variabel håller reda på vilket val användaren anger i huvudmenyn
Film nyFilm; // För att skapa en film behöver vi ett objekt att spara den i
do
{
system("cls"); // Se till att rensa skärmen
cout << " ** ARKIV ** " << endl;
cout << "*******************" << endl;
cout << "1: Ny film" << endl;
cout << "2: Radera film" << endl;
cout << "3: Sök efter film" << endl;
cout << "4: Visa alla" << endl;
cout << "0: Avsluta" << endl;
cout << "___________________" << endl;
cout << "Ange val: ";
cin >> menyVal;
cin.ignore( numeric_limits <streamsize>::max(), '\n' );
switch(menyVal)
{
case'1':
{
system("cls");
cout << "\n\n1: Ny film";
Sleep(1000);
cout << endl << endl;
// Vi ger objektets titel-variabel ett värde
cout << "Ange filmens Titel: ";
getline(cin, nyFilm.Titel);
cout << endl;
// Vi ger objektets media-variabel ett värde
cout << "Ange filmens Media: ";
getline(cin, nyFilm.Media);
cout << endl;
// Vi lägger vårt filmobjekt i vektorn
Arkiv.push_back( nyFilm );
break; // Undvik fall-through
}
case'2':
{
break;
}
case'3': // <---THIS IS THE PROBLEM
{
string objekt;
getline(cin, objekt);
vector<Film>::iterator it;
it = find (Arkiv.begin(), Arkiv.end(), objekt);
cout << "Filmen du sökte efter: " << *it << endl;
break;
}
case'4':
{
system("cls");
for(int i=0; i<Arkiv.size(); i++) // Räkna upp alla filmer i Arkiv
{
Arkiv[i].skrivFilm(); // Skriv ut dem med hjälp av funktionen skrivFilm();
}
cout << "\n\nTryck på ENTER för Huvudmeny.";
cin.ignore();
break;
}
case'0':
{
break;
}
default : cout << "Felaktigt val, försök igen." << endl;
Sleep(1000);
system("cls");
}
}
while( menyVal != '0');
}
Hope it helps more than the "example" I posted before...