使用 C++ 20 Visual Studio 2022 64 位版本 17.11.3 在非常简单的代码上生成错误
编译器代码库中似乎出现错误。 据我所知,代码没问题。我知道不使用使用这只是此时学习代码。
#include <cstdio>
#include <iostream>
#include <vector>
#include <fstream>
#include <string>
#include <sstream>
using std::vector;
vector<int> read_input() {
std::string line;
std::ifstream fp;
vector<int> data;
int word;
fp.open("input.txt");
if (fp) {
while (getline(fp, line, '\n')) {
vector<int> tempdata;
std::istringstream ss(line);
while (ss >> word) {
tempdata.emplace_back(word);
}
data.emplace_back(tempdata);
}
fp.close();
}
else
perror("File opening failed");
return data;
}
您正在尝试将
vector<int>
插入到 vector<int>
中。那是行不通的。 vector<int>
不可转换为 int
。
vector::insert
与 tempdata
中的迭代器一起使用。这告诉它将其插入到 data
: 的末尾
data.insert(data.end(), tempdata.begin(), tempdata.end());
// ^^^^^^^^^^
// insert before this