Приложение C++, которое я создаю, позволяет пользователю добавлять или удалять свои любимые игры в список.Создание списка моих избранных
Я хочу, чтобы список был заказан.
- Легенда о Zelda
- Contra
- GTA V
Я знаю, что нужно будет использовать время/цикл, однако я использую вектор (ы), который я новичок , и я не знаю, где разместить цикл while/for в моем коде.
То, что я пытался до сих пор:
неудачная попытка 1 - Вложенный цикл:
for (gameInter = list.begin(); gameInter != list.end(); gameInter++) {
for (int listNum = 1; listNum < list.size(); listNum++) {
cout << listNum << ". " << *gameInter << endl;
}
}
неудачная попытка 2 - Через некоторое время цикла:
case 1:
while(listNum < list.size()) {
cout << "Type the game title to add: \n";
cin.get();
getline(cin, addGame);
list.push_back(addGame);
sort(list.begin(), list.end());
cin.clear();
cin.sync();
cout << "\nYour game was successfully added.\n";
listNum++;
}
break;
Полный код:
#include <iostream>
#include <algorithm>
#include <vector>
#include <string>
using namespace std;
int main()
{
int userSelection = 0;
int listNum = 1;
string addGame, removeGame;
vector<string> list;
vector<string>::iterator gameInter;
while (userSelection != 4) {
cout << "Type 1 to add a game to your list\n";
cout << "Type 2 to remove a game from your list\n";
cout << "Type 3 to list all games\n";
cout << "Type 4 to quit\n";
cin >> userSelection;
switch (userSelection) {
case 1:
cout << "Type the game title to add: \n";
cin.get();
getline(cin, addGame);
list.push_back(addGame);
sort(list.begin(), list.end());
cin.clear();
cin.sync();
cout << "\nYour game was successfully added.\n";
break;
case 2:
cout << "Type the game title to remove: \n";
cin.get();
getline(cin, removeGame);
gameInter = find(list.begin(), list.end(), removeGame);
if (*gameInter == removeGame) {
cout << "Title " << removeGame << " found\n";
list.erase(gameInter);
cout << "Title " << removeGame << " has been removed!\n";
}
else
{
cout << "Title " << removeGame << " cannot be found!\n";
}
break;
case 3:
cout << "\nYour Favorite Games Are: \n";
for (gameInter = list.begin(); gameInter != list.end(); gameInter++) {
cout << listNum << ". " << *gameInter << endl;
}
break;
case 4:
cout << "Thank You for your input! Goodbye\n";
//userSelection = 4;
break;
default:
cout << "That is not a valid option\n";
break;
}
}
system("pause");
return false;
}
1) И поэтому не следует использовать 'using namespace std' в глобальной области:' vector list; '. То есть не называйте ваши переменные такими же, как типы STL. 2) Каковы ошибки, с которыми вы сталкиваетесь? –
Проголосовавшие: прокомментируйте! –
В соответствии с комментарием №1 и «Неудачная попытка» - _what_ не удалось? Вы не можете просто сказать «Это не работает» и ожидать решения без описания проблемы. Популярность этого подхода никогда не перестает удивлять меня: как люди ожидают, что это сработает? Во всяком случае, вы, вероятно, просто избавитесь от необходимости повторного использования колес вручную, когда stdlib предоставляет фантастические функции для случаев точно так же, как, например, 'std :: set>', который автоматически упорядочивается в соответствии с рангом в 'pair :: first' (и, если существуют какие-либо связи, то имя в' pair :: second'). –