簡體   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