reverse_copy(sourcebeg,sourceend,destbeg);
旋轉元素次序:
rotate(beg,newbeg,end);
將beg
-end元素旋轉,然後newbeg成為第乙個元素
rotate_copy(beg,newbeg,end,destbeg);
將beg
-end的元素旋轉複製到destbeg裡面,並且使newbeg成為第乙個元素
排列元素:
bool
next_permutation(beg,end);
bool
prev_permutation(beg,end);
改變元素次序,符合下乙個排列次序
改變元素詞語,符合上乙個排列次序
重拍元素:
random_abuffle(beg,end);
random_abuffle(beg,end,op);
第乙個隨機打亂beg
-end的元素次序
第二個用op打亂beg
-end的元素次序
向前搬移元素:
partition(begin,end,op);
stable_partition(beg,end,op);
排序:sort(begin,end);
sort(begin,end,op);
stable_sort(beg,end);
stable_sort(beg,end,op);
區域性排序:
partial_sort(begin,sortend,end);
partial_sort(begin,sortend,end,op);
對begin-end進行排序,使begin-sortend變成有序
partial_sort_copy(sourcebegin,sourceend,destbeg,destend);
partial_sort_copy(sourcebegin,sourceend,destbeg,destend,op);
根據第n個元素排序:
nth_element(beg,nth,end);
nth_element(beg,nth,end,op);
heap排序:
make_heap(beg,end);
make_head(beg,end,op);
push_heap(beg,end);
push_heap(beg,end,op);
pop_heap(beg,end);
pop_heap(beg,end,op);
sort_heap(beg,end);
sort_heap(beg,end);
c 演算法 變序性演算法
改變元素的次序,但不改變元素值,這種演算法不能用於關聯性容器,因為在關聯性容器中,元素有一定的次序,不能隨意改動 reverse 將元素的次序逆轉 reverser copy 複製的同時,逆轉元素順序 rotate 旋轉元素的次序 rotate copy 複製的同時,旋轉元素的次序 next per...
STL 變序類演算法
前言 所謂變序類演算法,就是在乙個容器裡面,把原有的順序改變,在這裡主要是介紹幾個演算法,reverse翻轉,rotate旋轉次序以及random shuffle隨機化打亂順序。reverse template class bidirectionaliterator void reverse bid...
字典序演算法
字典序排列就是按照字典a z,1 9的順序給出字串的順序全排列,例如abc的全排列就是從abc一直排到cba。那麼給定乙個字串,怎麼找出恰好大於該字串的下乙個排列呢?我們考慮如下的步驟 1 假設字串為p1 p2 pn 我們從後往前尋找第乙個符合pj j 1條件的字元pj 也就是說,p1 p2 pj ...