STL學習3常用演算法3 6常用拷貝替換演算法

2021-09-11 22:55:06 字數 1862 閱讀 4887

1、copy複製

1.1 將容器中指定範圍的元素拷貝到另一容器中

1.2 目標容器要有容量

2、replace按值替換

2.1  將區間內指定的舊元素替換為新元素

3、replace_if  按條件替換

3.1  將區間中符合條件的舊元素替換為新元素

4、swap 交換

4.1 交換兩個容器中的所有元素

#include"pch.h"

#include#include#include#include//ostream_iterator

using namespace std;

//copy 將容器中指定範圍的元素拷貝到另一容器中

void test01()

vectorvtarget;

vtarget.resize(v1.size());

copy(v1.begin(), v1.end(), vtarget.begin());

cout << "copy vtarget: " << endl;

/*for_each(vtarget.begin(), vtarget.end(), (int val) );

cout << endl;*/

//利用輸出流迭代器進行列印

copy(vtarget.begin(), vtarget.end(), ostream_iterator(cout," "));

cout << endl;

}//replace 將指定範圍內舊元素修改為新元素

//replace_if 按條件進行替換

class mycompare2

};void test02()

replace(v2.begin(), v2.end(), 3, 300);

cout << "after replace: " << endl;

copy(v2.begin(), v2.end(), ostream_iterator(cout, " "));

cout << endl;

//按條件進行替換

//將所有大於3的替換為300

replace_if(v2.begin(), v2.end(), mycompare2(), 3000);

cout << "after replace_if: " << endl;

copy(v2.begin(), v2.end(), ostream_iterator(cout, " "));

}//swap 互換兩個容器元素

void test03()

vectorv4(10, 100);

cout << "before swap: " << endl;

cout << "v3= ";

copy(v3.begin(), v3.end(), ostream_iterator(cout, " "));

cout << endl;

cout << "v4= ";

copy(v4.begin(), v4.end(), ostream_iterator(cout, " "));

cout << endl;

swap(v3, v4);

cout << "after swap: " << endl;

cout << "v3= ";

copy(v3.begin(), v3.end(), ostream_iterator(cout, " "));

cout << endl;

cout << "v4= ";

copy(v4.begin(), v4.end(), ostream_iterator(cout, " "));

}int main()

、測試程式

STL學習3常用演算法3 4常用查詢演算法

1 find 1.1 按元素查詢 2.2 提供查詢迭代器區間與查詢元素 返回迭代器 2 find if 2.1 按條件查詢 2.2 查詢區間 迭代器 查詢條件 一元謂詞,若為二元需繫結 2.3 返回迭代器 2.4 若為自定義資料型別 需要過載判斷條件 3 count 3.1 按元素統計 3.2 統計...

STL學習3常用演算法3 8常用集合演算法

1 set intersection 求兩個集合的交集 2 set union 求兩個容器的並集 3 set difference 求兩個集合的差集 4 兩集合必須是有序序列 5 返回結果最後乙個元素的迭代器位置 6 標頭檔案 include 7 測試程式 include pch.h include...

STL學習3常用演算法3 7常用算數生成演算法

1 標頭檔案 include 2 accumulate 2.1 計算容器元素累計總和 2.2 第三個引數是起始累加的值 3 fill 3.1 填充演算法 4 測試程式 include pch.h include include include accumulate includeusing name...