簡體   English   中英

在變量之間移動隊列而不復制元素

[英]Move Queues between variables without copying elements

我在一個應用程序中有多個隊列,我想更改它們“指向”的位置,為其他隊列更改。

例如,如果我有:

queue<int> q1 = queue<int>();
queue<int> q2 = queue<int>();
queue<int> q3 = queue<int>();

每個隊列中都有幾個元素,我想更新q1,使其指向q2,更新q2,使其指向q3,而不是復制元素。 我可以做類似的事情嗎?

q1 = &q2;
q2 = &q3;
q3 = queue<int>();

如果是這樣,我應該怎么寫? 還是我必須將這些隊列轉換為指向隊列的指針,以便能夠更改它們指向的位置?

我寧願避免使用指針,因此不必顯式管理內存。

您可以移動元素(而不是復制)(自C ++ 11起):

q1 = std::move(q2);
q2 = std::move(q3);
q3 = queue<int>();

所以q1從以前保存資源q2q2從以前保存資源q3q3是空的。

暫無
暫無

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

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