我有一个二维向量,其中行不相等。我一直在尝试删除第一列,但是在以前的stackoverflow帖子中没有运气。
示例数据:
1 2 4 5 6 6
1 2 3 4 6 6 8
读取数据的代码:
myfile.open("test.txt");
if(myfile.is_open())
{
while(getline(myfile, line)){
//cout << "This line: ";
if(line != "")
{
istringstream is(line);
sortVec.push_back(std::vector<int>( std::istream_iterator<int>(is),
std::istream_iterator<int>() ) );
}
}
}
else
{
cout << "Myfile is not open" << endl;
}
myfile.close();
当我尝试使用std:vector擦除第一列时:
int columnIndex = 0;
for(auto& row:sortVec){
row.erase(next(row.begin(), columnIndex));
}
我遇到了细分错误。
我也尝试了以下stackoverflow帖子。 How to delete column in 2d vector, c++
另外,当我手动创建矢量时,一切都可以正常运行,所以我现在迷路了。
所需的输出:
2 4 5 6 6
2 3 4 6 6 8
答案是,使用getline时不要忘记检查空行。我文件的最后一行是空的。