欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
【轉】C++STL 常用 函數 用法

學(xué)完c++快一年了,感覺(jué)很有遺憾,因為一直沒(méi)有感覺(jué)到c++的強大之處,當時(shí)最大的感覺(jué)就是這個(gè)東西的輸入輸出比C語(yǔ)言要簡(jiǎn)單好寫(xiě)。

  后來(lái)我發(fā)現了qt,opencv,opengl,原來(lái),c++好玩的狠。

  在這些圖形庫之外,最常用的可能就是STL,這個(gè)東西由于當時(shí)學(xué)c++的時(shí)候迷迷糊糊,完全是一頭霧水,上學(xué)期數據結構之后開(kāi)始有點(diǎn)兒開(kāi)竅了,現在把才c++STL中常用的函數,用法貼一下,也是記錄一下,希望能給一樣迷糊的盆友們一些幫助。

 

  整理自《ACM程序設計》  

 

  迭代器(iterator)

  個(gè)人理解就是把所有和迭代有關(guān)的東西給抽象出來(lái)的,不管是數組的下標,指針,for里面的、list里面的、vector里面的,抽象一下變成了iterator

View Code

  

  求和(<numeric> accumulate)

  accumulate(v.begin(),v.end(),0),把從 v.begin() 開(kāi)始到 v.end()結束所有的元素加到 0上面去

View Code

 

 

  vector(動(dòng)態(tài)數組)

  vector有內存管理的機制,也就是說(shuō)對于插入和刪除,vector可以動(dòng)態(tài)調整所占用的內存空間。  

  vector相關(guān)函數

View Code

 


  數組轉置 (<algorithm> reverse)

  reverse(v.begin(),v.end())

View Code

  排序(<algorithm> sort)

  sort(v.begin(),v.end())

View Code

  字符串(<string>)

  輸入

View Code

 

  尾部添加字符字符串直接用+號 例如: s += 'a'; s += "abc",或者使用append方法,s.append(“123”)

  刪除 (erase clear)

  s.erase(it + 1,it + 4); clear()

View Code

  查找(find)

  用find找到string里面第一個(gè)要找到元素(char或者串),找到返回數組下標,找不到返回end()迭代器

  string和vector有很多相同的東西,比如length(),size(),empty(),reverse(),相對也容易,就不一一說(shuō)了。

  數字化處理(string)

  經(jīng)常會(huì )遇到這樣一種情況,有一個(gè)數字,需要把每一位給提取出來(lái),如果用取余數的方法,花費的時(shí)間就會(huì )很長(cháng),所以可以當成字符串來(lái)處理,方便、省時(shí)。

  例子:求一個(gè)整數各位數的和

View Code

  string與char *

  

View Code

  sscanf

  

View Code

  string與數值相互轉換( sprintf <sstream> )

View Code

 

  set容器

  set是用紅黑樹(shù)的平衡二叉索引樹(shù)的數據結構來(lái)實(shí)現的,插入時(shí),它會(huì )自動(dòng)調節二叉樹(shù)排列,把元素放到適合的位置,確保每個(gè)子樹(shù)根節點(diǎn)的鍵值大于左子樹(shù)所有的值、小于右子樹(shù)所有的值,插入重復數據時(shí)會(huì )忽略。set迭代器采用中序遍歷,檢索效率高于vector、deque、list,并且會(huì )將元素按照升序的序列遍歷。set容器中的數值,一經(jīng)更改,set會(huì )根據新值旋轉二叉樹(shù),以保證平衡,構建set就是為了快速檢索(python中的set一旦建立就是一個(gè)常量,不能改的)。

  multiset,與set不同之處就是它允許有重復的鍵值。

  正反遍歷,迭代器iterator、reverse_iterator

View Code

  自定義比較函數,insert的時(shí)候,set會(huì )使用默認的比較函數(升序),很多情況下需要自己編寫(xiě)比較函數。

  1、如果元素不是結構體,可以編寫(xiě)比較函數,下面這個(gè)例子是用降序排列的(和上例插入數據相同):

View Code

 

  2、元素本身就是結構體,直接把比較函數寫(xiě)在結構體內部,下面的例子依然降序:

View Code

  multiset與set的不同之處就是key可以重復,以及erase(key)的時(shí)候會(huì )刪除multiset里面所有的key并且返回刪除的個(gè)數。

  map

  map也是使用紅黑樹(shù),他是一個(gè)鍵值對(key:value映射),便利時(shí)依然默認按照key程序的方式遍歷,同set。

View Code

  用map實(shí)現數字分離

  string --> number

  之前用string進(jìn)行過(guò)數字分離,現在使用map

View Code

  number --> string

View Code

  multimap

  multimap由于允許有重復的元素,所以元素插入、刪除、查找都與map不同。

  插入insert(pair<a,b>(value1,value2))

View Code

  至于刪除和查找,erase(key)會(huì )刪除掉所有key的map,查找find(key)返回第一個(gè)key的迭代器

  deque

  deque和vector一樣,采用線(xiàn)性表,與vector唯一不同的是,deque采用的分塊的線(xiàn)性存儲結構,每塊大小一般為512字節,稱(chēng)為一個(gè)deque塊,所有的deque塊使用一個(gè)Map塊進(jìn)行管理,每個(gè)map數據項記錄各個(gè)deque塊的首地址,這樣以來(lái),deque塊在頭部和尾部都可已插入和刪除元素,而不需要移動(dòng)其它元素。使用push_back()方法在尾部插入元素,使用push_front()方法在首部插入元素,使用insert()方法在中間插入元素。一般來(lái)說(shuō),當考慮容器元素的內存分配策略和操作的性能時(shí),deque相對vectore更有優(yōu)勢。(下面這個(gè)圖,我感覺(jué)Map塊就是一個(gè)list< map<deque名字,deque地址> >)

  插入刪除

  遍歷當然可以使用下標遍歷,在這里使用迭代器。

View Code

  list

  list<int> l

  插入:push_back尾部,push_front頭部,insert方法前往迭代器位置處插入元素,鏈表自動(dòng)擴張,迭代器只能使用++--操作,不能用+n -n,因為元素不是物理相連的。

  遍歷:iterator和reverse_iterator正反遍歷

  刪除:pop_front刪除鏈表首元素;pop_back()刪除鏈表尾部元素;erase(迭代器)刪除迭代器位置的元素,注意只能使用++--到達想刪除的位置;remove(key) 刪除鏈表中所有key的元素,clear()清空鏈表。

  查找:it = find(l.begin(),l.end(),key)

  排序:l.sort()

  刪除連續重復元素:l.unique() 【2 8 1 1 1 5 1】 --> 【 2 8 1 5 1】

  bitset

  從來(lái)沒(méi)用過(guò),上兩幅圖吧就:

  stack(后進(jìn)先出)

  這個(gè)印象深刻,學(xué)數據結構的時(shí)候做表達式求值的就是用的棧。

View Code

 

  stack然我唯一費解之處在于,貌似它沒(méi)有iterator,可以試試s.begin()編譯器報錯的。

  queue(先進(jìn)先出)

  queue有入隊push(插入)、出隊pop(刪除)、讀取隊首元素front、讀取隊尾元素back、empty,size這幾種方法

  priority_queue(最大元素先出)

 

 

 

View Code

  重載操作符同set重載操作符。

原文地址:http://www.cnblogs.com/duoduo369/archive/2012/04/12/2439118.html

本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
C++ STL詳解
stl容器學(xué)習總結
C++的標準模板庫(STL)簡(jiǎn)介
Effective STL(item1 - item22)
c++中容器總結
標準C++庫string及STL相關(guān)【轉】
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久