基本的に私はゲームのリストを作成しようとしており、ユーザに削除するオプションを与えようとしています。ユーザーが入力できる
1)チームフォートレス2
2)Skyrimの
3)ポータル
:私はリストを表示するときC++ベクタ番号にアクセスする
#include <iostream>
#include <string>
#include <vector>
using namespace std;
int main()
{
//setup
vector<string> games;
games.push_back("Team Fortress 2");
games.push_back("Skyrim");
games.push_back("Portal");
vector<string>::iterator myIterator
//main
int delItem;
cin >> delItem; // Consumes a number to represent the game to be deleted
while (iter != games.end()) // Displays all the games
{
cout << j << ") " << *iter << endl;
iter++;
j++;
}
while ((delItem <= games.begin()) || (delItem > games.end())) // can only be 1, 2, or 3
{
cout << "\nThat input is incorrect. Please try again: ";
getline (cin, delItem);
}
myIterator = (games.begin() + (delItem - 1);
games.erase(myIterator); // Deletes the item
cout << "\nThe game has been deleted.";
return 0;
}
だから、それは次のようになります。それは次のようになりますゲームの前にある番号で、それを削除するために選択されます。私がしようとしているのは、ユーザーがこれらの3つの数字よりも高いまたは低い数字を入力しないようにすることです。私は2番目のwhileループでこれを試みますが、games.begin()は数字ではありません。私はこれがたぶん間に合わなかったばかばかしい間違いであることを知っていますが、どんな助けも素晴らしいでしょう。
は() '最大エントリの' games.sizeをお試しください:
この代わりのようにもっと何かを試してみてください。あなたは最小限のエントリが何であるかを理解できますか? –
このような問題を解決する適切なツールは、デバッガを使用することですが、そうする前にStack Overflowで尋ねることはありません。 1つ目の行でコードを検査するときに行ったすべての観察を教えてください。また、[**小さなプログラムをデバッグする方法(Eric Lippertによる)](https://ericlippert.com/2014/03/05/how-to-debug-small-programs/)**]を読んでみてください。あなたの問題を再現する** [MCVE] **を私たちに任せてください。 (これはπάνταῥεῖ™が提供する個人的な株式コメントです) –