Nếu tôi có hai vectơ và muốn kết hợp chúng với một, tôi có thể làm điều đó theo cách sau:"di chuyển" hai vectơ cùng
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));
Đó bao gồm sao chép mặc dù, mà tôi muốn tránh. Có cách nào để sử dụng di chuyển-ngữ nghĩa để có được chúng với nhau?
Tôi rất nghi ngờ nó, như là một vector
được cho là tiếp giáp. Tuy nhiên có cách nào để làm điều đó với một deque
?
Cảm ơn, bây giờ tôi biết tại sao có hai phiên bản 'std :: move' trên cppreference. Tôi luôn nghĩ đó là một lỗi và không kiểm tra phiên bản thứ hai. – inf
Tôi đã hoàn toàn bỏ lỡ rằng 'di chuyển' cũng là một thuật toán. – bames53
@ bames53 cùng niềm vui với tôi, nhưng sau khi nghe nó, nó có ý nghĩa hoàn toàn vì cũng có 'copy'. – inf