STL演算法示例

2021-08-01 11:25:25 字數 2214 閱讀 7116

首先查詢給定值第乙個位置,然後遍歷後面的元素,將非移除元素拷貝到前面,覆蓋前面的元素。

#include #include #include #include using namespace std;

void print_element(int n)

int main(void) ;

vectorv(a, a+6);

listl(15);

for_each(v.begin(), v.end(), print_element);

cout << endl;

/*remove(v.begin(), v.end(), 3);

for_each(v.begin(), v.end(), print_element);

cout << endl;*/

v.erase(remove(v.begin(), v.end(), 3), v.end());

for_each(v.begin(), v.end(), print_element);

cout << endl;

return 0;

}

執行結果:

#include #include #include #include using namespace std;

void print_element(int n)

int main(void) ;

vectorv(a, a+6);

listl(15);

for_each(v.begin(), v.end(), print_element);

cout << endl;

rotate(v.begin(), v.begin()+2, v.end()-1);

for_each(v.begin(), v.end(), print_element);

cout << endl;

return 0;}/*

* listl

* l.end()-1

* 鍊錶不支援隨機訪問+,-,+=,-=:error

* ++,--:ok*/

執行結果:

lower_bound:(應用於有序區間)搜尋第乙個「大於等於給定值」的元素,如果要插入給定值保持區間有序性,返回第乙個可插入位置

upped_bound:(應用於有序區間)搜尋第乙個「大於給定值」的元素,如果要插入給定值,保持區間有序性,返回最後乙個可插入的位置

#include #include #include #include using namespace std;

void print_element(int n)

int main(void) ;

vectorv(a, a+6);

listl(15);

for_each(v.begin(), v.end(), print_element);

cout << endl;

auto it = lower_bound(v.begin(), v.end(), 10);

if(v.end() != it)

it = upper_bound(v.begin(), v.end(), 10);

if(v.end() != it)

v.insert(it,55);

for_each(v.begin(), v.end(), print_element);

cout << endl;

return 0;

}

執行結果:

//累加

cout << accumulate(v.begin(), v.end(), 0) <

STL示例05 泛型演算法

stl示例 泛型演算法find if include include include include include using namespace std define vsize 24 vectorv vsize void initialize long ri void show const l...

STL 演算法細節

一 概論 1 質變演算法 會改變操作物件的值 2 非質變演算法 不改變操作物件的值 3 所有泛型演算法的前兩個引數都是一對迭代器 二 演算法的泛化過程 1 將乙個敘述完整的演算法轉化為程式 是任何訓練有素的程式設計師勝任愉快的工作。2 泛化是乙個漸進過程,從具體到抽象的過程。3 迭代器是乙個行為類似...

STL演算法概述

除了容器類和迭代器,stl還提供了一些通用的演算法與容器類的元素工作。這些讓你做的事情,如搜尋,排序,插入,重新排序,刪除,複製元素的容器類。請注意,作為全球性的功能,操作使用迭代器演算法的實現。這意味著,每個演算法只需要實現一次,它一般會自動工作,提供了一組迭代器 包括自定義的容器類 的所有容器。...