C C 的一些亂七八糟的總結(二) 未完

2022-03-29 08:37:53 字數 3501 閱讀 2976

1.  模板

1

#include

<

iostream

>23

using

namespace

std;4//

函式模板

5template

<

class

t>

6t cmin(t m,t n)710

intmain()

11

1

#include

<

iostream

>23

using

namespace

std;45

//模板類

6template

<

class

t1,class

t2>

7class

myclass8;

1617

template

<

class

t1,class

t2>

18myclass

<

t1,t2

>

::myclass(t1 a,t2 b):i(a),j(b){}

1920

template

<

class

t1,class

t2>

21void

myclass

<

t1,t2

>

::show()

2225

intmain()

26

非型別模板

#include 

<

iostream

>

using

namespace

std;

//非型別模板引數

//非型別模板引數可以是常整數(包括列舉)或者指向外部鏈結物件的指標

//浮點數是不行的,指向內部鏈結物件的指標是不行的

template

<

class

t,int

maxsize

>

class

stack

;template

<

class

t,int

maxsize

>

stack

<

t,maxsize

>

::stack()

template

<

class

t,int

maxsize

>

void

stack

<

t,maxsize

>

::show()

intmain()

2  stl中全排列的函式  next_permutation  prev_permutation

#include 

<

iostream

>

#include

<

algorithm

>

using

namespace

std;

intmain();do

//next_permutation得到的是所以的全排列,

//如果原序列是從最小字典排列的

while

(next_permutation(arr, arr +3

));cout

<<

"******************************

"<<

endl;

//prev_permutation與next_permutation相反,

//由原排列得到字典序中上一次最近排列。

inta =;

dowhile

(prev_permutation(a,a+3

));return0;

}

#include 

<

iostream

>

#include

<

algorithm

>

using

namespace

std;

bool

mynext_permutation(

int*

frist,

int*

last)

if(i

==frist)}}

intmain();do

while

(mynext_permutation(arr,arr+3

));return0;

}

演算法描述:

1、從尾部開始往前尋找兩個相鄰的元素

第1個元素i,第2個元素j(從前往後數的),且i

、再從尾往前找第乙個大於i的元素k。將i、k對調

3、[j,last)範圍的元素置逆(顛倒排列)

執行過程:

next:

01234

->i=

3,j=4

->k=

4,對調後01243

->

j指向最後乙個元素,故結果為01243

next:

01243

->i=

2,j=4

->k=

3,對調後01342

->

j指向4,顛倒後為01324 即結果

...next:

01432

->i=

1,j=4

->k=

2,對調後02431

->

j指向4,顛倒02134

按預設字典序的內部實現(帶仿函式的類似):

#include

<

algorithm

>

#include

<

iostream

>

template

<

typename bidirectionaliterator

>

bool

next_permutation(bidirectionaliterator first, bidirectionaliterator last)

//到最前面了

if(i

==first)

}}

3.一道函式引數傳遞問題

#include #include //  

using namespace std;

void out(char *ch,int i)

int main()

cout << "*****==begin**********==";

return 0;

}

C C 的一些亂七八糟的總結(一)

0.最近在複習c 好多東西都忘了 從部落格中,書中看到的一些東西,在這裡簡單總結下,沒有章法,看到哪,複習到哪 1.引用 c 中引用 具備了 指標的 所有功能 區別 1 引用在定義時必須初始化.引用和變數共享同一塊記憶體空間,而指標單獨有記憶體空間 2 指標進行刪除後,一般需要將其指向null,防止...

一些亂七八糟的彙總

也不是很正式的一篇文章,就是有時做事的時候總會遇到一些奇奇怪怪的問題,或者有一些比較常用但是總是記不住或者懶得記的東西。標題是索引。應該會不斷加東西進去,就當字典用了唄,下次遇到就不用費勁找了。一般來說,無法解析的外部符號 後面就是一大串看不懂的鬼東西。這個是鏈結錯誤,一般來說在 上是不會有小紅線提...

一些亂七八糟的東西

1.zsh與bash的切換 切換bash chsh s bin bash 切換zsh chsh s bin zsh 2.檢視當前所使用的shell echo shell 3.初次安裝mysql,在設定中啟動後要新增環境 1 進入 usr local mysql bin,檢視此目錄下是否有mysql,...