如何初始化数组的向量
how to initialize a vector of array
我想创建一个数组
的向量vector<BYTE[6]> cKey;
BYTE keyTemp[6];
memset(keyTemp, 0xFF, sizeof(keyTemp)); // Key is FFF...FF
cKey.push_back(keyTemp);
但是在push_back函数中,显示错误
Error C3074: an array can only be initialized with an initializer-list
如何初始化数组的vector
不能。std::vector
使用的底层类型必须是CopyAssignable,而数组则不是。参考:http://en.cppreference.com/w/cpp/container/vector
一个解决方案是使用std::array
作为底层类型,而不是原始数组:
#include <iostream>
#include <vector>
#include <array>
using BYTE = unsigned char;
int main()
{
std::vector<std::array<BYTE, 6>> cKey;
std::array<BYTE, 6> keyTemp{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};
cKey.push_back(keyTemp);
}
我不知道你用了什么数据类型的字节。下面是如何使用int数组的:
#include <iostream>
#include <vector>
int main()
{
std::vector<int*> cKey;
int keyTemp[8] = { 1,2,3,4,5,6,7,8 };
cKey.push_back(keyTemp);
std::cout << cKey[0][6] << std::endl;
system("pause");
return 0;
}
相关文章:
- 如何在向量数组中插入元素?
- 不同大小的向量数组的大小 cpp
- 很好的语法来获取对向量/数组数据的大小引用?
- 指向 c++ 中的向量数组并将其发送到函数的指针
- 初始化向量数组,其中每个向量的大小为 0
- 在这里,当我们比较 if(vc[i]==vc1[i]) 时,它是向量数组. 实际上比较的值是多少,
- 如何使用结构体的向量数组?
- C++:向量数组
- 在C++中通过引用传递向量数组
- 向量数组"Cannot access memory at address"
- 构造不同类型的C++向量数组
- 向量数组的均值和众数 - 如何对函数进行较小的改进
- C++:初始化(新)一个不同初始大小的向量数组
- 五个中三个最大参数的平均值,不使用排序算法或向量/数组
- 销毁C++中的向量数组
- 继承向量/数组/列表并更改其大小
- 如何输出属于向量数组的结构字符串
- 如何通过引用传递向量数组
- 在向量数组中获得前五个最大的结果
- 为什么"new vector<int>[5]"不创建向量数组?