簡體   English   中英

需要轉換 std::vector<ButtonElement> buttonList 到 std::vector<BYTE> 字節向量

[英]Need to convert std::vector<ButtonElement> buttonList to std::vector<BYTE> byteVector

我需要將 std::vector buttonList 轉換為 std::vector byteVector。 我使用這個 memcpy(&byteVector, &buttonList, buttonList.size() * sizeof(TenderButtonList_Element));

但是我的一位前輩提到這不是 STL 的正確用法,但沒有確切說明它是什么。 我懷疑 memcpy 不應該用於向量。 上述轉換是否有效,我觀察到它達到了目的,但想知道它是否有效。 如果不是,你能指出正確的方法嗎?

如果不是,你能指出正確的方法嗎?

這取決於您要實現的目標。

你有一個TenderButtonList_Element的序列(一個vector ),對吧?

您希望生成包含與第一個序列相同的位模式的字節序列? 那是對的嗎?

如果這就是你所追求的,那么你想要這樣的東西:

vector<std::byte> vBytes;
vBytes.resize(buttonList.size() * sizeof(TenderButtonList_Element));
memcpy(vBytes.data(), buttonList.data(), vBytes.size());

如果你想要別的東西,那么你需要說那是什么。

請注意,通常, memcpy -ing c++ 對象周圍不會產生有效對象。

暫無
暫無

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

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