使用2d向量从txt读取文件

Jos*_*mon 2 c++ vector

在2d向量的情况下是否可以使用运算符[]?例如,我得到以下代码:

vector<vector<string>> data;

ifstream myReadFile;
myReadFile.open("stoixeia_astheni.txt");


while (!myReadFile.eof()) {

    for(int i=0; i<1; i++){
        for (int j=0; j<4; j++){
            myReadFile  >> data[i][j];
        }
    }

}
Run Code Online (Sandbox Code Playgroud)

我的消息超出了范围.我有一个包含5行和4列的文件.

Zet*_*eta 7

你的向量data是空的,它size()是0.你必须resize首先使用它或使用push_back()以下方法添加新元素:

while (!myReadFile.eof()) {    
    for(int i = 0; i < 1; i++){
        vector<string> tmpVec;
        string tmpString

        for (int j = 0; j < 4; j++){
            myReadFile  >> tmpString;
            tmpVec.push_back(tmpString);
        }
        data.push_bac(tmpVec);
    }
}
Run Code Online (Sandbox Code Playgroud)

您还可以在以下声明中设置大小data:

vector<vector<string>> data(5,vector<string>(4));

ifstream myReadFile;
myReadFile.open("stoixeia_astheni.txt");

while (!myReadFile.eof()) {

    for(int i=0; i < 5; i++){
        for (int j=0; j<4; j++){
            myReadFile  >> data[i][j];
        }
    }

}
Run Code Online (Sandbox Code Playgroud)

  • @zeta很低,还是不存在?无论如何,无论如何,我都给了+1作为补偿. (2认同)