繁体   English   中英

无符号字符数组,用于键入stl :: map或其他容器

[英]unsigned char array to key in the stl::map or other container

我尝试制作一张像

 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()吗?

或者还有其他适合我的好容器吗?

谢谢 :)

使用std::string构造函数从char数组(而非C-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.

这允许嵌入空字符。

使用STL向量而不是无符号字符数组

注意:

如果您使用的是c ++ 11并且具有固定的字符长度,请使用std :: array。 如果您没有固定长度或没有使用C ++ 11或更高版本,请使用std :: vector

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM