【发布时间】:2020-07-09 06:43:38
【问题描述】:
我在使用 std::array 时遇到了一些麻烦。
我有一个名为 b 的数组,让我们这样声明它:array<int,2>b[3];
也许我会这样输入:
for(int i = 0; i<3; i++){
int a; cin >> a;
b[i] = {a,i};
}
当我这样做时,我得到一个错误:
ar.cpp:30:8: error: expected expression
b[i]={a, i};
还可以说我想输入一个向量vector<array<int, 2>> ans;
我可能会这样做:
int a = 10, b = 20;
ans.push_back({a,b});
我收到另一个错误说明:
error: expected expression
ans.push_back({a, j});
注意我将它们作为单独的案例和单独的变量来放置
我尝试使用 make_pair 之类的方法,但没有奏效。
这些错误可能是因为我使用的是 c++17 而不是 11。但是我尝试了很长时间,我无法修复它。为了帮助我解决这个问题,请到这里:Visual Studio Code c++11 extension warning and lamda warnings
谁能建议我应该做些什么来代替这个?谢谢。
注意 可能类似于 make_pair 但对于 vector
【问题讨论】:
-
@d4rk4ng31 当人们输入大多数人做的配对向量时:a.push_back({b,c}) 但我有这个问题有一段时间了,而不是 {} 我总是不得不写“make_pair”,因为我收到了那个错误。你知道在这种情况下我该如何替换这个 make_pair 吗?
-
为什么我会收到反对票?
-
嗯,对我来说效果很好
-
我不知道
b[i] = {a,i};应该做什么。它没有降神会。 IMO 它应该只是b[i] = a; -
我猜这和stackoverflow.com/questions/62812376/…是同一个问题?
标签: c++ arrays input compiler-errors