Поисковая система — Нужна помощь в поиске по моей базе данных Переполнение стека

У меня возникли проблемы с моей базой данных movied, моя поисковая функция не работает.
Я абсолютный новичок и получил функцию поиска в сети, но он не будет искать.

Вот мой код

#include <iostream>
#include <vector>
#include <sstream> // För att kunna använda sig av getline()
#include <string> // För att kunna använda sig av getline()
#include <algorithm>

using namespace std;

class Film
{
public:
string Titel;
string Typ;

// FUNKTION: Skriver ut filmens titel och typ
void skrivUtFilm()
{
cout << endl;
cout << "Titel: " << Titel << endl; // Skriver ut filmens titel
cout << "Typ: " << Typ << endl; // Skriver ut filmens typ
}
};

int main()
{
vector<Film> Databas;             // Skapa en vektor av typen Film

Film nyFilm;                    // För att kunna skapa en film behöver vi kunna spara den

while (true)
{
// Skriver ut menyn:
cout << " === FILMDATABAS === " << endl;
cout << "1: Registera en ny film"   << endl;
cout << "2: S\x94k efter en film"   << endl;
cout << "3: Skriv ut filmlistan"    << endl;
cout << "0: Avsluta"    << endl;
cout << "Ange ditt val: ";

char menySelection; // Användarens val
cin >> menySelection;if (menySelection == '1') // Registerar nya filmer
{
cin.get();
cout << "\n\n1: Registrera en ny film\n";
cout << "Vad \x84r filmens Titel: ";
getline(cin, nyFilm.Titel);

cout << "\x8er filmen p\x86 DVD eller BluRay? ";
getline(cin, nyFilm.Typ);
cout << endl;

// Vi lägger vårt filmobjekt i vektorn
Databas.push_back( nyFilm );
}
else if (menySelection == '2') // Söker efter filmer som användaren har lagt till
{
cin.get();
cout << "\nS\x94k efter filmer i databasen: \n\n";
string objekt;
getline(cin, objekt);
cout << endl;

vector<Film>::iterator it;

it = find_if(Databas.begin(), Databas.end(),[&] ( const Film &f )
{
return ( f.Titel == objekt);
});
}
else if (menySelection == '3') // Skrivet ut alla filmer i Filmarkivet
{
cout << "\n=========\n";
cout << "Filmlistan\n";
for(int i=0; i<Databas.size(); i++)
{
Databas[i].skrivUtFilm(); // Skriver ut dem med hjälp av skrivUtFilm();
}
cout << "\n=========\n";
cout << "\n\nTryck p\x86 ENTER f\x94r att \x86terv\x84nda till menyn.\n\n";
cin.get();
}
else if (menySelection == '0') // Avslutar programmet
{
break;
}
else
{
cout << "Ogiltigt val!\n." << endl;
}
}
cin.get();
return 0;
}

0

Решение

Когда вы находите фильм, вы ничего не делаете с ним.

После функции поиска вы должны добавить что-то вроде:

if (it != Databas.end()) {
it->skrivUtFilm();

} else {
cout << "No film found" << endl;

}

распечатать информацию о фильме, который вы нашли, или сообщение, что фильм не был найден.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]