[英]Can you cast a vector<int64> to a vector<uint8>
在 C++ 中,将int64_t
向量转换为uint8_t
的正确方法是什么?
我明白我可以这样做:
std::vector<int64_t> int64Vec;
std::vector<uint8_t> uint8Vec(int64Vec.begin(), int64Vec.end());
但我认为创建了一个不必要的副本。 是否可以投射向量?
原因是uint8vec
被传递给一个需要uint8_t
向量的函数。
是否可以投射向量?
不。
原因是 uint8vec 被传递给一个需要 uint8_t 向量的函数。
应该修复的是那个函数。 如果该函数接受迭代器(当取消引用时产生可以转换为uint8_t
的类型),就不会有问题:
template <typename IT>
void function( IT begin, IT end);
也许为IT
类型添加健全性检查以获取可读的错误消息,以防IT
没有取消引用可以转换为uint8_t
的类型。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.