【持续更新中】
1、next_permutation函数和prev_permutation
next_permutation函数和prev_permutation是STL用来对可重集合按照字典序(lexicographical)进行全排列(排列组合)的算法。(如果关心输出字典序,则需要事先进行排序,用do-while循环写比较好)
next_permutation()函数是通过对集合元素从后往前进行从大到小的排列组合,函数会自动记录之前顺序,会取得[first,last)所标示之序列的下一个排列组合,如果没有下一个排列组合,便返回false;否则返回true。prev_permutation函数和next_permutation()函数正好相反,它是对集合元素进行从大到小的排列组合,函数会自动记录之前顺序,会取得[first,last)所标示之序列的上一个排列组合,如果没有上一个排列组合,便返回false;否则返回true。
使用方法样例:若A={abcda},则第一次next_permutation(A,A+5)=abdac,不断地调用next_permutation函数则往{dcbaa}的最终结果走。第一次prev_permutation(A,A+5)=abcad,不断地调用prev_permutation函数则往{aabcd}的最终结果走。
2、set容器:
set< int >se;//默认按照从小到大排序,
set< int,greater< int > >se;//按照从大到小排序。
se.insert(i);//插入,
se.erase(i);//删除
set< int >::iterator it;//迭代器
se.empty()//判空
t=se.end();//返回的是容器最后一个元素的下一个位置,一般后面都会加一句t–;
t=se.begin();//返回的是容器的第一个元素的位置
我一定可以的!!!