1
誰かが私のコードを見れば、問題は見つからないかもしれませんが、私はpush_back/pop_back関数について何か理解していないと確信しています。C++ push_back、pop_back。エラーを取得する:ベクトル添え字が範囲外にある
このプログラムは、ユーザー入力を受け取り、ユーザーが「停止」を入力すると停止するベクトルを作成するように設計されています。
これは私にこのエラーを与えている間違いなく、私は間違っているか何かを変更しているかわかりません。何か助けに感謝します。
コード:
#include <vector>
#include <string>
using namespace std;
int main(){
vector<string> animals;
vector<string> ages;
int const SIZE = 5;
string stopCheck = "stop";
string tempUserInput;
int i = 0;
//Loop used to gather user input and store it into array, animals and array, ages
cout << "Please enter up to 5 animal names and ages, or type 'stop' to end" << endl;
while(i<5) {
cout << i << endl;
// Taking user input for NAMES
cout << "Enter the name of an animal: ";
cin >> tempUserInput;
animals.push_back(tempUserInput);
cout << endl;
cout << animals.size() << endl;
//Function that automates the tolower function by applying it to each element automatically
//transform(animals[i].begin(), animals[i].end(), animals[i].begin(), tolower);
cout << animals.size() << endl;
//Checking for a stop input
if (!animals[i].compare(stopCheck)){
animals.pop_back();
i = 5;
}
i++;
return 0;
}
は、それが正しく、100%のコピーが、私の初期化を想定していないが、右であり、問題は、私は任意の助けをいただければと思いますwhileループです。
が、*の前にこれを行うことが容易ではないでしょう* 'push_back'? 'if(tempUserInput == stopCheck){ブレーク; } ' – rustyx
デバッガは、エラーが発生した行を示す必要があります。 "ベクトル添字が範囲外です"とは、 'some_vector [index]'のように、 'index'が> some_vector.size()であることを意味します。つまり、存在しない要素にアクセスしたことを意味します。 – nwp
あなたの問題は何ですか? – Raindrop7