#include
遍历算法
for_each:
vector
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;容器元素合并,存储到另一个容器;
vector
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())