繁体   English   中英

将 unsigned char* 转换为 std::vector<uint8_t></uint8_t>

[英]convert unsigned char* into std::vector<uint8_t>

嘿,我正在尝试将 unsigned char* 转换为 std::vector<uint8_t> ,这就是我已经尝试过的。

uint64_t something(unsigned char* raw1)
{
    std::vector<uint8_t> raw_image;
    for (auto b : raw1) {
        raw_image.push_back(b);
    }
}

我无法让它工作,任何更多的帮助将不胜感激!

知道大小后,您可以轻松地使用正确的std::vector构造函数而不是循环:

std::vector<uint8_t> raw_image(raw1, raw1 + raw1_size);

在这种情况下,上面调用了迭代器构造函数重载。

话虽如此,请记住这会创建数据的副本,而不是raw1指向的数据的“视图”。 为此,如果可用,您可以使用 C++20 std::span class。

暂无
暂无

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

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