c++常用算法

#include

遍历算法

for_each:
vectorv;

v.push_back(1);v.push_back(2);v.push_back(3);

for_each(v.begin(),v.end(),普通函数);

for_each(v.begin(),v.end(),仿函数);

transform:搬运容器到另外一个容器;

transform(v.begin(),v.end(),目标容器起始迭代器v2.begin(),仿函数);

 

查找算法:

find;查找指定元素,找到返回指定元素的迭代器,找不到返回end()迭代器;

find(v.begin(),v.end(),5);如果元素是自定义的类型,就需要重载;

find_if;

find_if(v.begin,v.end(),谓词);找到返回指定元素的迭代器,找不到返回end()迭代器;

adjacent_find;查找相邻重复的元素,如果查找到,返回相邻元素第一个迭代器;查不到返回end()迭代器;

adjacent_find(v.begin,v.end());

binary_search;查找指定元素是否存在,返回true和false;必须在有序的序列中才能使用;

binary_search(v.begin(),v.end(),元素)

count;

count(v.begin(),v.end(),元素);统计元素的个数;自定义的数据类型,必须重载==;

count_if;返回元符合条件元素的个数;

count_if(v.begin(),v.end(),谓词);

 

排序算法:

sort;排序sort(v.begin(),v.end),谓词);

random_shuffle;随机打乱次序; 

srand((unsigned int')time(NULL))随机数种子

 random_shuffle(v.begin(),v.end);

merge;容器元素合并,存储到另一个容器;

vectorvTarget;

vTarget.resize<11>;给目标容器分配空间;

merge(v.begin(),v.end(),v1.begin(),v1.end(),vTarget.begin())

reverse;反转,首尾对调; 

reverse(v.begin(),v.end);

 

拷贝和替换:

copy;将容器指定范围内的元素拷贝到另一个容器中;

copy(v.begin(),v.end(),vTarget.bengin())

replace;将容器内指定的范围的旧元素修改为新元素;

replace(v.begin(),v.end(),旧值,新值);把所有的旧值都替换为新值;

replace_if;

replace(v.begin(),v.end(),谓词,新值)

swap;互换两个容器的元素;同种类型的容器才能交换;

swap(容器1,容器2);

 

算数生成:#include

accumulate;计算容器元素总和;

accumulate(v.begin(),v.end(),起始的累加值);返回总和

fill;将指定区间替换称其他指定元素;

fill(v.begin(),v.end(),替换的元素);

 

集合:

set_intersection;交集

set_intersection(v.begin(),v.end(),v1.begin(),v1.end(),vTarget.begin());vTarget是目标容器,最后返回目标容器的end()迭代器;

set_union;并集,两个容器必须是有序序列;

set_union(v.begin(),v.end(),v1.begin(),v1.end(),vTarget.begin());返回的是并集的end()迭代器;

set_difference;差集,分v1和v2的差集,v2和v1的差集;

set_difference(v.begin(),v.end(),v1.begin(),v1.end(),vTarget.begin())

你可能感兴趣的:(C/C++)