我尝试制作像
这样的地图 map<unsigned char[16], string> testMap;
并且unsigned char[16]
看起来不适合键映射。
但在我的密钥中有NULL,所以我不能使用字符串作为密钥..
示例键:
01 bc 03 00 50 03 00 00 89 00 10 00 ff ff ff ff
这种密钥也可以使用map.find()
?
或者我还有其他好的容器吗?
谢谢:)
答案 0 :(得分:5)
使用构造char数组(不是C-String)字符串的std::string
构造函数。这需要两个参数 - 指向数组的指针和长度:
std::string x("pq\0rs");
// Two characters because input assumed to be C-String
std::string x("pq\0rs",5);
// 5 Characters as the input is now a char array with 5 characters.
这允许嵌入空字符。
答案 1 :(得分:0)
使用STL向量而不是unsigned char数组
注意:
如果您使用的是c ++ 11且字符长度固定,请使用std :: array。 如果你没有固定长度或者没有使用C ++ 11或更高版本,那就去std :: vector