在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];
}
}
}
我的消息超出了范围。我有一个包含5行和4列的文件。
答案 0 :(得分: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);
}
}
您还可以在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];
}
}
}