STL好用函式集錦(未完待續)

2022-05-26 03:18:14 字數 1635 閱讀 9301

next_permutation(a+1,a+n+1) 用於求解a陣列的下乙個較大的排列。

prev_permutation則與之相反,求解下乙個較小的排列。

函式引數均為陣列起始座標,和終止座標,如果存在下乙個排列,則返回1,否則返回0,同時把該陣列變為下乙個排列。

應用前景廣泛。

例項**:

#include#include#include#include#include#include#include#include#include#include#include#include#include#define dd double

#define ld long double

#define ll long long

#define ull unsigned long long

#define n 10

#define m number

using namespace std;

int n,a[n];

inline void print()

int main()

作用:求解第k小的數,並保證,第k小的數在第k位,前k個數均比這個數小,後面的數均大於等於這個數

引數 nth_element(a+1,a+k+1,a+n+1,cmp)

其中的意思為,在1到n這個區間的陣列a中,把第k大的數放在第k位(相當於1來說),前面的數均比它小,後面的數均比它大。cmp為自定義比較函式。 nth_element預設是越小優先順序越高。我們通過類似於sort的自定義函式,可以改變其優先順序。

事件負責度\(o(n)\),相當於用快速排序。比sort一遍要優。

**:

#includeusing namespace std;

bool cmp(int a, int b)

int main()

; int b[10] = ;

int c[10] = ;

nth_element(a+1,a+3,a+10);

//將下標為2,也就是第3個數放在正確的位置

//也就是求的是第3小

cout <<"第3小是:"<< a[3] << endl;

for(int i = 1; i < 10; i++)

cout << a[i] << " "; puts("");//注意下標是從0開始計數的

//那麼求第3大,就是求第9-3+1小,即第7小

//也就是將下標為6的第7個數,放在正確的位置

nth_element(b+1,b+7,b+10);

cout <<"第3大是:"<< b[7] << endl;

for(int i = 1; i < 10; i++)

cout << b[i] << " "; puts("");//注意下標是從0開始計數的

nth_element(c+1,c+3,c+10,cmp);//第一種方法

//nth_element(c,c+2,c+9,greater()); //第二種方法

cout <<"第3大是:"<< c[3] << endl;

for(int i = 1; i < 10; i++)

cout << c[i] << " "; //注意下標是從0開始計數的

}

nginx 未完待續

yum install y pcre yum install y pcre devel yum install y openssl yum install y openssl devel yum install y zlib yum install y gccyum安裝 yum install y ...

sqlparse(未完待續)

sqlparse.split sql,encoding none sql 包含乙個或多個sql語句的字串 encoding 語句的編碼 可選 sql select from foo select from bar sql list sqlparse.split sql print sql list ...

CALayer使用(未完待續)

一 什麼是calayer?在ios系統中,你能看得到摸得著的東西基本都是uiview。比如乙個按鈕 乙個文字標籤 乙個文字輸入框 乙個圖示等等,這些都是uiview。其實uiview之所以顯示在螢幕上,完全是因為它內部的乙個層。在建立uiview物件時,uiview內部會自動建立乙個層 即calay...