向量操作
Vector operation
我一直在尝试使用c 中的向量初始化一个数组,并将值插入它。当我编译代码时,我会收到错误。
#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;
}
**解决方案。
解决方案。 是非类型'std :: vector [16]'
vect.insert(vect.begin((,3,5(;
解决方案。 是非类型'std :: vector [16]'
vect.insert(vect.begin((,3,5(; ** ^~~~~
vector<int> vect[16];
您将vect
定义为16个不同(和空的(向量的数组。如果您想要具有16个元素的单个向量,则应执行
vector<int> vect(16);
请注意,如果您使用vect.insert(...)
,则将向向量添加元素,从16
更改其大小。为了解决此问题,要么使用您创建的16个元素和使用,例如,例如vect[i]
(用于有效的索引i
(,或创建一个空的向量并使用vect.emplace_back(...)
。
如果您真的想要一个数组,并且在编译时已知固定尺寸,则可以使用std::array
:
array<int, 16> vect; // Creates an array of 16 int elements
此答案是对OP在评论中的澄清的回应:
您需要的是int
的vector
/array
,您可以用以下方式声明一个:
std::vector<int> v(16, 0);
v
是一个 16
元素初始化为 0
的向量。然后,您想将第一个3
元素更改为5
,可以使用std::fill
:
std::fill(v.begin(), v.begin() + 3, 5);
包括<bits/stdc++.h>
和using namespace std;
是不良练习。请避免它们。
和Godbolt
相关文章:
- 为什么一个向量上的多线程操作很慢
- C++ 随机数生成器:尝试将结果作为向量获取,但通过制作 void 函数来执行此操作而出现错误
- 为什么我必须在作案操作中解析向量的大小?
- 如何有效地操作满足给定谓词的向量中的所有项目?
- 通过浮点指针操作字节向量
- 自动符号转换,用于对类等数学向量进行操作
- 防止在不同尺寸的,模板,多态性的数学向量上进行组件操作
- 合并排序的合并操作无法使用 c++ 向量
- 向量操作
- 如何在C 对向量的第二个元素上执行较低的操作
- 向量元素数据损坏了Find()操作
- STD ::向量迭代器类型和允许的操作
- 将std ::向量复制到CV :: Mat_的行操作相同
- 如何在C 向量操作中修复误差
- 使用C++void函数操作向量数组
- C++轴对齐的矩形操作向量和字符串
- 在类中操作向量时遇到问题
- 在 c++ 中操作向量时的分割错误
- 在类中操作向量的成员
- 操作向量和结构的元素