我想要创建一个数组向量
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如何初始化数组的向量?
发布于 2015-10-20 03:50:27
我不知道你用了什么数据类型。这里它是如何与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;
}发布于 2015-10-20 03:45:38
你不能。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);
}https://stackoverflow.com/questions/33227431
复制相似问题