簡體   English   中英

了解C ++中的以下數據類型

[英]Understanding the following datatype in c++

片段1:

// Byte-vector that clears its contents before deletion
typedef std::vector<char, zero_after_free_allocator<char> > CSerializeData;

片段2:

std::deque<CSerializeData> vSendMsg;

上面的例子來自比特幣來源,它為內部使用做了復雜的typedef。 從注釋中,我們可以簡單地假設zero_after_free_allocator用於清理數據。

vSendMsg到底是什么? 它是字符向量的雙端隊列嗎?

更新:

片段3:

std::deque<CSerializeData>::iterator it = vSendMsg.insert(vSendMsg.end(), CSerializeData());

我們在這里做什么? 看起來我們正在插入一個類並獲得迭代器。 如何將數據插入其中?

如何將數據插入其中?

您對新插入的vector有一個迭代器,因此it->會影響該vectorit->push_back('x');

在對這些事情有信心之前,您可能希望一次只做一個步驟:

CSerializeData& v = *it;
v.push_back('x');

這樣,如果轉換為引用失敗,則可以在擔心push_back是否是向vector添加數據的正確方法之前弄清楚原因。

暫無
暫無

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

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