私は配列のすべての要素の合計を見つけようとしていて、sum
という初期アキュムレータ変数を0
として宣言しています。auto
を使用しています。2つの整数を追加しますが、1つは "int"として宣言し、もう1つは "auto"として宣言しますか?
#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;
}
コンパイルエラーです。私はこれに何が間違っているか知りたい。
error: no match for 'operator+' in 'sum + arr.std::vector<_Tp, _Alloc>::operator[] >(((std::vector::size_type)arr_i))'|
gccコンパイラでコードブロックを使用していますが、C++ 11が有効です。 C++ 11では
'auto sum {0}'において、 'sum'は一つの要素が' 0'の 'std :: initializer_list 'です。 –
[再生されません](http://coliru.stacked-crooked.com/a/4d03e269a9019949)。 C++ 11を有効にしてコードをコンパイルします。 – LogicStuff
@TavianBarnes、そうではありません。 – SergeyA