STL的移動演算法

2021-06-29 05:44:36 字數 546 閱讀 9855

要在自定義型別中使用移動演算法,需要在元素中提供移動賦值運算子,移動賦值運算子和std::move()詳見《c++高階程式設計》第9章

class mystring

mystring(const string &str) :mstr(str){}

mystring& operator=(mystring&& rhs)//移動賦值運算子

};

主函式:

vectorn = ;

vectorsfrom = ;

vectorsto(3);

move(sfrom.begin(), sfrom.end(), sto.begin());//移動演算法

for (auto &t : sto)

cout << t.mstr << "\t";

cout << endl;

for (auto &t : sfrom)

cout << t.mstr << "\t";

cout << endl;

STL的移動演算法

要在自己定義型別中使用移動演算法。須要在元素中提供移動賦值運算子。移動賦值運算子和std move 詳見 c 高階程式設計 第9章 class mystring mystring const string str mstr str mystring operator mystring rhs 移動賦...

STL演算法之複製 移動 填充 歸併 替換

轉接自stl演算法 1.copy 將乙個區間元素複製到另乙個區間 2.copy if 將滿足謂詞pred條件的元素複製到另乙個區間 3.copy backward 將區間的元素從最後乙個元素開始複製 4.copy n 複製乙個區間的n個元素到另一區間 5 move 將區間的元素移到另乙個區間 6.m...

STL的is heap演算法

前兩天在看austern的generic programming and stl,看到關於堆的操作,其中有個函式是is heap,其複雜度是last first 1,我沒有仔細去看過stl的源 就自己想想stl的實現。由於堆從邏輯上講是一棵完全二叉樹,因此自然而然就想到用遞迴。我就簡單的寫了下面的用...