c++ - 如何将 vector<unsigned char> 转换为 int?

标签 c++ stl stdvector

我有 vector<unsigned char>用二进制数据归档。我需要从 vector (2 个字节)中取出 2 个项目并将其转换为整数。这怎么能不使用 C 风格来完成?

最佳答案

请使用移位运算符/位运算。

int t = (v[0] << 8) | v[1];

这里提出的所有基于转换/union 的解决方案都是 AFAIK 未定义行为,并且可能会在利用 strict aliasing 的编译器上失败。 (例如 GCC)。

关于c++ - 如何将 vector<unsigned char> 转换为 int?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4031459/

相关文章:

c++ - 如何在 C++ 中查找 3D 空间中的相邻点

c++ - 为什么这段代码以无限循环结束,从 std::cin 读取

c++ - 不抛出 std::out_of_range 异常

c++ - 从标准 I\O 流读取和写入会导致错误

c++ - 如何在编译时获得多维 std::vector 的深度?

c++ - 只有两个 parent 之一的赋值运算符

c++ - C程序检测物理链路状态和丢包

c++ - 无效 C 风格强制转换后的方法调用

c++ - 为什么使用 for_each 是错误的?

c++ - 有条件地将一个 vector 复制到另一个 vector 的最快方法