gpt4 book ai didi

c++ - 您可以将 vector 转换为 vector

转载 作者:太空宇宙 更新时间:2023-11-03 17:24:55 29 4
gpt4 key购买 nike

在 C++ 中,将 int64_t 的 vector 转换为 uint8_t 的正确方法是什么?

我知道我可以这样做:

std::vector<int64_t> int64Vec;
std::vector<uint8_t> uint8Vec(int64Vec.begin(), int64Vec.end());

但我认为创建了一个不必要的拷贝。是否可以转换载体?

原因是 uint8vec 被传递给需要 uint8_t vector 的函数。

最佳答案

Is it possible to cast the vector?

没有。

The reason why is that uint8vec is passed to a function which expects a uint8_t vector.

应该修复的是那个函数。如果该函数改为接受迭代器(当取消引用时产生一个可以转换为 uint8_t 的类型)就不会有问题:

template <typename IT>
void function( IT begin, IT end);

也许为类型添加完整性检查 ITIT 的情况下获得可读的错误消息不取消引用可以转换为 uint8_t 的类型.

关于c++ - 您可以将 vector<int64> 转换为 vector<uint8> 吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59610483/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com