STL常用算法学习总结

来源:互联网 发布:mysql如何创建数据库 编辑:程序博客网 时间:2024/05/22 00:50
只列出了部分算法,每个算法仅给出了一种常用法,还有其他更多用法,请查看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替换成areverse(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中