我想创建一个数组 vector
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);
}