所以我想简化这个片段
#include <bits/stdc++.h>
using namespace std;
int n;
vector<int> A;
int main() {
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cin >> n;
for (int i = 0; i < n; i++) {
int tmp;
cin >> tmp;
A.push_back(tmp);
}
}
而且因为我最近阅读了有关 inserters 和 back_inserters 的内容,所以我想立即使用它们,这就是我想出的
#include <bits/stdc++.h>
using namespace std;
int n;
vector<int> A;
int main() {
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cin >> n;
for (int i = 0; i < n; i++) cin >> *back_inserter(A);
}
但是由于某种原因,编译器会吐出一条巨大的错误消息,我不能在这里放,所以这里只是第一句话,因为我认为它是最相关的。
error: no match for 'operator>>' (operand types are 'std::istream' {aka 'std::basic_istream<char>'} and 'std::back_insert_iterator<std::vector<int> >')
谢谢你的帮助!
注意:在任何人评论全局变量的使用和 using 命名空间行之前,此代码仅用于竞争性编程。