您的位置:首页 > 其它

STL常用算法学习总结

2013-01-04 16:39 351 查看
只列出了部分算法,每个算法仅给出了一种常用法,还有其他更多用法,请查看C++标准手册
std::vector<int>v,b,c;
binary_search( v.begin(), v.end(), 要查找的值 );//二分查找
copy( v.begin(), v.end(),b.begin() );//复制
count (v.begin(), v.end(), 要查找的值);// 查找容器中指定值的数量
equal (v.begin(), v.end(), b);//比较两个容器,看是否完全相等
fill(v.begin(), v.end(), 要填充的值);//填充值到指定范围
find (v.begin(), v.end(),要查找的值);//普通查找
for_each (v.begin(), v.end(), 带传入参数的函数名);//将V中的所有元素遍历传入指定函数中
generate(v.begin(), v.end(), 带返回参数的函数名);//用指定函数的返回值填充容器V
includes(v.begin(),v.end(),b.begin(),b.end());//返回b中所有的元素是否在v中的bool值,需先用sort排序
iter_swap(v.begin(),b.end());//交换两个迭代器的值
merge (v.begin(),v.end(),b.begin(),b.end(),c.begin());//合并两个容器到第三个容器中
mismatch (v.begin(),v.end(),b.begin());//逐个比较两个容器中的对应下标的元素是否相等,返回两个容器中首个不相等的值到一个pair中
remove(v.begin(), v.end(),要删除的值);//删除指定值
replace (v.begin(), v.end(), x, a); //查找范围内所有的数据x替换成a
reverse(v.begin(), v.end());//把范围内所有数据按相反的顺序排列
rotate(v.begin(),v.begin()+3,v.end());//把范围内的数据转移到指定点
search(v.begin(),v.end(),b.begin(),b.end())//在容器v范围中查找子范围b,找到返回子范围的起始迭代器
sort (v.begin(),v.begin()+4); //对指定范围内的元素进行排序
stable_sort (v.begin(),v.end()); //保证相等元素的相对前后位置不变的排序。
sort_heap (v.begin(),v.end()); //堆排序
swap(v,b);//交换两个容器内的所有元素
swap_ranges(v.begin(),v.begin()+3,b.begin());//交换v指定范围内的元素和b指定迭代器处向后相等数量的元素
transform (v.begin(), v.end(), b.begin(), 带传入参数的函数名);//遍历容器v指定范围内的元素传入自定义操作函数中处理后存入容器b中


 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: