【发布时间】:2026-01-16 23:30:01
【问题描述】:
我正在尝试查找数组中所有元素的总和,并使用auto 将我的初始累加器变量sum 声明为0。
#include <cmath>
#include <cstdio>
#include <vector>
#include <iostream>
#include <algorithm>
using namespace std;
int main(){
int n;
auto sum {0};
cin >> n;
vector<int> arr(n);
for(int arr_i = 0;arr_i < n;arr_i++){
cin >> arr[arr_i];
sum=sum+arr[arr_i];
}
cout<<sum;
return 0;
}
它给了我一个编译错误。我想知道这有什么问题。
错误:'sum + arr.std::vector<_tp _alloc>::operator[] >(((std::vector::size_type)arr_i))'中的'operator+'不匹配'|
我正在使用带有 gcc 编译器的代码块,并且启用了 C++ 11。
【问题讨论】:
-
在
auto sum{0}中,sum是一个带有一个元素的std::initializer_list<int>,0。 -
Not reproduced。在启用 C++11 的情况下编译您的代码。
-
@TavianBarnes,不,不是。
-
你用的是什么编译器?您使用的是什么编译器标志?请将它们添加到帖子中。还要在帖子中添加编译器错误。
-
它给了我一个编译错误。嗯,什么错误?我们能看到吗?