簡體   English   中英

C ++向量下標超出范圍錯誤

[英]c++ Vector subscript out of range error

該程序應該打開一個.csv文件,並將數據輸入到向量中。 稍后,我應該實現一個優先級隊列。 但是,當我嘗試運行它時,出現此錯誤。

#include <iostream>
#include <fstream>
#include <sstream>
#include <vector>
#include "Prisoner.h"
#include "Jailed.h"
using namespace std;

int main()
{

string line, ID, sentenceIn, servedIn, lastName, firstName;
int sentence, served;

vector<string> idNum;
vector<int> sentenceLen;
vector<int> servedTime;
vector<string> lastNameIn;
vector<string> firstNameIn;


ifstream data("prisoner_data.csv");

if (!data.is_open())
{
    exit(EXIT_FAILURE);
}

while (getline(data, line))
{

    getline(data, ID, ',');
    cout << ID << "  ";
    idNum.push_back(ID);

    getline(data, sentenceIn, ',');
    cout << sentenceIn << "  ";
    istringstream(sentenceIn) >> sentence;
    sentenceLen.push_back(sentence);


    getline(data, servedIn, ',');
    cout << servedIn << "  ";
    istringstream(servedIn) >> served;
    servedTime.push_back(served);


    getline(data, lastName, ',');
    lastNameIn.push_back(lastName);
    cout << lastName << "  ";

    getline(data, firstName, ',');
    firstNameIn.push_back(firstName);
    cout << firstName << "  ";
}
Prisoner p[100]; // Initializing Prisoner class

for (int i = 0; i <= idNum.size(); i++)
{
    p[i].setIdNum(idNum[i]);
    p[i].setSentence(sentenceLen[i]);
    p[i].setTimeServed(servedTime[i]);
    p[i].setLastName(lastNameIn[i]);
    p[i].setFirstName(firstNameIn[i]);
}

data.close();
system("pause");
return 0;

}

如果需要找出問題,我也可以包括囚犯班。

for (int i = 0; i <= idNum.size(); i++)

應該

for (int i = 0; i < idNum.size(); i++)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM