如果我有兩個向量,並希望將它們組合到一個,我能做到這一點的方式如下:「動」兩種載體一起
std::vector<T> a(100); // just some random size here
std::vector<T> b(100);
a.insert(std::end(a), std::begin(b), std::end(b));
這涉及到複製,雖然,這是我想避免的。有什麼方法可以使用移動語義來將它們組合在一起?
我非常懷疑它,因爲vector
應該是連續的。但是有什麼辦法可以通過deque
來完成嗎?
謝謝,現在我知道爲什麼在cppreference上有兩個版本的'std :: move'。我一直認爲這是一個錯誤,並沒有檢查第二個版本。 – inf 2012-03-19 21:55:48
我完全錯過了「移動」也是一種算法。 – bames53 2012-03-19 21:59:14
@ bames53同樣發生在我身上,但在聽完之後,它總是有意義的,因爲還有'copy'。 – inf 2012-03-19 22:01:28