1
如果有人能夠查看我的代碼,我似乎無法找到它的問題,但我確信我只是不瞭解有關push_back/pop_back功能的內容。C++ push_back,pop_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){break; }' – rustyx
你的調試器應該告訴你錯誤發生的地方。 「向量下標超出範圍」意味着你做了一些類似'some_vector [index]'的地方,其中'index'>>'some_vector.size()',這意味着你訪問了一個不存在的元素。 – nwp
什麼是你的問題? – Raindrop7