如果我有std::deque
和std::vector
并希望将它们组合到std::deque
,我能做到这一点的方式如下:移动的std ::矢量到std :: deque的在C++ 11
typedef int T; // type int will serve just for illustration
std::deque<T> deq(100); // just some random size here
std::vector<T> vec(50);
// ... doing some filling ...
// now moving vector to the end of queue:
deq.insert(
deq.end(),
std::make_move_iterator(vec.begin()),
std::make_move_iterator(vec.end())
);
std::cout << deq.size() << std::endl;
我们知道但在使用std::deque.insert(...)
之前,我们无法在std::deque
的末尾预留内存。 那么,将std::vector
的所有元素移动到std::deque
末尾的最快方法是?或者我错过了什么?
谢谢。
当你说“移动”时,我认为“从矢量中获取元素,并将它们放入deque中”。你所展示的东西仍然留下矢量中存在的移动元素。 –
T是移动应该比复制便宜的类型吗?对于没有区别的整数 – MikeMB