簡體   English   中英

C++ 如何將字符數組轉換為字節向量(向量<byte> )

[英]C++ how to convert char array to vector of bytes (vector<byte>)

我有大量的字符

char myCharArray[] = {
  0x9B,0x3E,0x34,0x87,0xFD,0x24,0xB4,0x64,0xBA,0x80,0x04,0xFD,
  0xDF,0x23,0x41,0xEE,0x00,0x00,0x00,0x00,0xAC,0xF9,0x8F,0x00,
  ...
}

如何將myCharArray轉換為vector<byte>

您可以將char數組作為std::byte數組進行檢查。 所以最有效的解決方案是:

#include <iterator> // for std::begin / end

std::vector<std::byte> v(
    reinterpret_cast<std::byte*>(std::begin(myCharArray)), 
    reinterpret_cast<std::byte*>(std::end(myCharArray))
);

通過這種方式,向量預先知道要分配多少內存,並且它可以通過 memcpy 或類似的高效例程執行復制,而不是一個接一個地復制一個字節,並且必須在其間多次重新分配。

std::vector<std::byte> bytes;
for (char &c : myCharArray) {
    bytes.push_back(static_cast<std::byte>(c));
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM