我一直在尝试使用C ++中的vector初始化数组并将值插入其中。编译代码时,出现以下错误。
#include <bits/stdc++.h>
using namespace std;
// Complete the hourglassSum function below.
int hourglassSum(vector<vector<int>> arr) {
int i,j;
int sum=0;
vector<int> vect[16];
vect.insert(vect.begin(),3,5);
return 0;
}
** Solution.cpp:在函数'int hourglassSum(std :: vector>)'中:
Solution.cpp:17:6:错误:请求成员“ vect”中的“插入” 是非类类型'std :: vector [16]'
vect.insert(vect.begin(),3,5);
Solution.cpp:17:18:错误:在“ vect”中请求成员“ begin” 是非类类型'std :: vector [16]'
vect.insert(vect.begin(),3,5); ** ^ ~~~~
答案 0 :(得分:3)
使用
<script href="{{ asset('js/app.js') }}" defer></script>
您将vector<int> vect[16];
定义为16个不同(且为空)向量的数组。如果您想要一个包含16个元素的矢量,应该这样做
vect
请注意,然后如果您使用vector<int> vect(16);
,则将元素添加到向量中,其大小从vect.insert(...)
更改。要解决此问题,请不要使用您创建并使用的16个以上元素,例如16
(用于有效索引vect[i]
),或创建一个空向量并使用i
。
如果您真的想要一个在编译时已知大小固定的数组,则可以改用vect.emplace_back(...)
:
std::array
答案 1 :(得分:0)