
STL
_王川
屌丝程序员
展开
-
algorithm函数一览
库函数accumulate 累加序列的所有元素adjacent_difference 计算序列中的相邻元素是否不同adjacent_find 查找相邻的两个相同(或者有其他关联)元素any_of 如果对于任意元素的谓词测试都为true,则返回true (C++11)all_of 如果对于所有元素的谓词测试都为true,则返回true (C++11)b原创 2014-02-02 00:32:21 · 1046 阅读 · 0 评论 -
C++ equal
#include #include #include #include #include using namespace std;bool f(int i){ return i<15;}int main(){ array test = {3,5,7,11,13,17,19,21}; array t2 = {3,5,7,11,13,17,19,23}; //判断两个原创 2014-02-08 19:45:39 · 4016 阅读 · 0 评论 -
C++ find和find_if
#include #include #include #include #include using namespace std;bool f(int i){ return i>15;}bool f2(int i,int t){ return i>t;}int main(){ array test = {3,5,7,11,13,17,19,23}; array:原创 2014-02-08 19:21:12 · 2706 阅读 · 1 评论 -
C++ make_heap,push_heap,pop_heap,sort_heap(以最大的K个数为例)
找出最大的20个数#include #include #include #include #include #include #include #include #include using namespace std;int main(){ //freopen("C:\\in.txt","r",stdin); vector t(50); iota(t原创 2014-02-10 03:47:03 · 1542 阅读 · 0 评论 -
C++ is_partitioned
#include #include #include #include #include using namespace std;template bool _is_partitioned (InputIterator1 first, InputIterator1 last, UnaryPredicate pred){ while (first!=last && pred原创 2014-02-09 13:28:22 · 886 阅读 · 0 评论 -
C++ mismatch
#include #include #include #include #include #include // std::default_random_engine#include // std::chrono::system_clockusing namespace std;int main(){ array t1 = {3,5,7,11,原创 2014-02-09 02:34:09 · 2788 阅读 · 0 评论 -
C++ shuffle,random_shuffle
#include #include #include #include #include #include // std::default_random_engine#include // std::chrono::system_clockusing namespace std;int main(){ array t1 = {3,5,7,11,原创 2014-02-09 02:13:25 · 3858 阅读 · 0 评论 -
C++ unique
#include #include #include #include #include using namespace std;int main(){ array t1 = {13,11,7,5,5,17,19,23}; array::iterator it; //删除相同的元素,保留第一个,对于此数组,即删除第二个5 //it=unique(t1.begin(),原创 2014-02-09 01:58:06 · 1480 阅读 · 1 评论 -
C++ search和search_n
#include #include #include #include #include using namespace std;int main(){ array test = {3,5,7,7,11,6,17,19}; array t2 = {11,13}; array::iterator it; //找到t2中元素在test中第一次出现的位置,不像find函数原创 2014-02-08 20:27:31 · 3583 阅读 · 0 评论 -
C++ partition
template ForwardIterator partition(ForwardIterator first,ForwardIterator last, UnaryPredicate pred){ auto pos=first; for(;first!=last;++first)原创 2014-02-03 21:41:33 · 3070 阅读 · 0 评论 -
C++ set_union,set_intersection,set_difference
#include #include #include #include #include using namespace std;//两集合的合集template OutputIterator _set_union (InputIterator1 first1, InputIterator1 last1, InputIt原创 2014-02-09 16:16:53 · 1774 阅读 · 0 评论 -
常用STL函数用法
1、next_permutation2、partition3、lower_bound与upper_bound整理中......原创 2014-02-06 17:10:38 · 1119 阅读 · 0 评论 -
C++ lower_bound与upper_bound
自己实现的函数如下:template ForwardIterator lower_bound(ForwardIterator first, ForwardIterator last,T &value){ while(first!=last){ auto mid=next(first,distance(fir原创 2014-02-03 21:39:47 · 1017 阅读 · 0 评论 -
C++ for_each
#include #include #include #include #include using namespace std;//类struct tmp1{ int t; void operator()(int i){ cout<<i<<endl; }}t;struct tmp2{ int t; tmp2(int x=0):t(x){} void oper原创 2014-02-08 19:09:07 · 1370 阅读 · 0 评论 -
C++标准库总结
6 C++标准库总结 6.1 容器 6.1.1 序列 vector========================= list=========================== deque========================== 6.1.2 序列适配器 stack:top,push,pop=============原创 2014-02-09 00:37:16 · 1340 阅读 · 0 评论 -
C++ remove,remove_if
#include #include #include #include #include using namespace std;int main(){ array t1 = {3,5,7,11,13,17,19,23}; remove(t1.begin(),t1.end(),3); remove_if(t1.begin(),t1.end(),[](int i){re原创 2014-02-09 01:42:20 · 2413 阅读 · 0 评论 -
C++ generate,generate_n
#include #include #include #include #include using namespace std;int main(){ array t1; //产生序列个100内的随机数 generate(t1.begin(),t1.end(),[](){return rand()%100;}); //产生5个1000内的随机数 generat原创 2014-02-09 01:38:53 · 3123 阅读 · 0 评论 -
C++ transform
#include #include #include #include #include using namespace std;int main(){ array t1 = {3,5,7,11,13,17,19,23}; array t2; //将t1中所有元素加1,并赋给t2 transform(t1.begin(),t1.end(),t2.begin(),[](原创 2014-02-09 01:19:50 · 3423 阅读 · 0 评论 -
C++ count和count_if
#include #include #include #include #include using namespace std;bool f(int i){ return i<15;}int main(){ array test = {3,5,7,11,13,17,19,23}; int t; t=count(test.begin(),test.end(),5);原创 2014-02-08 19:27:52 · 2240 阅读 · 0 评论 -
C++ merge
#include #include #include #include #include using namespace std;template OutputIterator _merge (InputIterator1 first1, InputIterator1 last1, InputIterator2 first2,原创 2014-02-09 15:52:13 · 1577 阅读 · 0 评论 -
C++ sort
sort函数对快排进行了优化,这里提供一个自己写的原始版本#include #include #include #include #include using namespace std;template void _qsort (InputIterator1 first, InputIterator1 last,UnaryPredicate pred){ if(fi原创 2014-02-09 15:38:47 · 1159 阅读 · 0 评论 -
C++ is_permutation
#include #include #include #include #include using namespace std;template bool _is_permutation (InputIterator1 first1, InputIterator1 last1, InputIterator2 first2){原创 2014-02-09 13:05:17 · 1359 阅读 · 0 评论 -
C++ fill,fill_n
#include #include #include #include #include using namespace std;int main(){ array t1 = {3,5,7,11,13,17,19,23}; array t2; fill(t2.begin(),t2.end(),5); fill_n(t2.begin(),5,4); for_eac原创 2014-02-09 01:34:37 · 880 阅读 · 0 评论 -
C++ copy、copy_n、copy_if
#include #include #include #include #include using namespace std;int main(){ array test = {3,5,7,11,13,17,19,23}; array t2; //copy(test.begin(),test.end(),t2.begin()); //只拷贝小于15的数 //c原创 2014-02-08 20:36:02 · 3931 阅读 · 0 评论 -
C++ replace,replace_if,replace_copy,replace_copy_if
#include #include #include #include #include using namespace std;bool f(int i){ return i<15;}int main(){ array test = {3,5,7,11,13,17,19,23}; replace(test.begin(),test.end(),3,5);//将容器中原创 2014-02-08 19:35:41 · 1045 阅读 · 0 评论 -
C++ next_permutation
算法流程如下:Example 6 8 7 4 3 2step 1 6 8 7 4 3 2step 2 6 8 7 4 3 2step 3 7 8 6 4 3 2step 4 7 8 6 4 3 2 7 2 3 4 6 81、从右向左找到第一个非递增元素,即62、从原创 2014-02-03 23:03:08 · 1035 阅读 · 0 评论