国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當(dāng)前位置: 首頁(yè) > news >正文

南寧外貿(mào)網(wǎng)站建設(shè)表白網(wǎng)頁(yè)制作免費(fèi)網(wǎng)站制作

南寧外貿(mào)網(wǎng)站建設(shè),表白網(wǎng)頁(yè)制作免費(fèi)網(wǎng)站制作,新疆省住房和城鄉(xiāng)建設(shè)廳網(wǎng)站,重慶觸摸屏 電子商務(wù)網(wǎng)站建設(shè)文章目錄cSTL急急急vector頭文件擴(kuò)容過(guò)程用法:size/emptyclear迭代器begin/endfront/backpush_back() 和 pop_back()queue頭文件用法循環(huán)隊(duì)列 queue用法優(yōu)先隊(duì)列 priority_queue用法stack頭文件deque頭文件deque中控器:用法set頭文件用法迭代器begin/end…

文章目錄

  • c++STL急急急
  • vector
    • 頭文件
    • 擴(kuò)容過(guò)程
    • 用法:
    • size/empty
    • clear
    • 迭代器
    • begin/end
    • front/back
    • push_back() 和 pop_back()
  • queue
    • 頭文件
    • 用法
    • 循環(huán)隊(duì)列 queue
      • 用法
    • 優(yōu)先隊(duì)列 priority_queue
      • 用法
  • stack
    • 頭文件
  • deque
    • 頭文件
    • deque中控器:
    • 用法
  • set
    • 頭文件
    • 用法
    • 迭代器
    • begin/end
    • insert
    • find
    • lower_bound/upper_bound
    • erase
    • count
  • map
    • 頭文件
    • 用法
    • Insert/erase
    • find
    • []操作符
  • bitset
    • 頭文件
    • 用法
    • 續(xù)表
  • array
    • 頭文件

c++STL急急急

vector

頭文件

#include <vector>

vector是變長(zhǎng)數(shù)組,支持隨機(jī)訪問(wèn),不支持在任意位置O(1)插入。為了保證效率,元素的增刪一般應(yīng)該在末尾進(jìn)行。

擴(kuò)容過(guò)程

如果集合已滿(mǎn),在新增數(shù)據(jù)的時(shí)候,就要分配一塊更大的內(nèi)存,將原來(lái)的數(shù)據(jù)復(fù)制過(guò)來(lái),釋放之前的內(nèi)存,在插入新增的元素
所以對(duì)vector的任何操作,一旦引起空間重新配置,指向原vector的所有迭代器就都失效了

用法:

#include <vector>      頭文件vector<int> a;              相當(dāng)于一個(gè)長(zhǎng)度動(dòng)態(tài)變化的int數(shù)組
vector<int> b[233];     相當(dāng)于第一維長(zhǎng)233,第二位長(zhǎng)度動(dòng)態(tài)變化的int數(shù)組struct rec{…};
vector<rec> c;             自定義的結(jié)構(gòu)體類(lèi)型也可以保存在vector中

size/empty

size函數(shù)返回vector的實(shí)際長(zhǎng)度(包含的元素個(gè)數(shù)),empty函數(shù)返回一個(gè)bool類(lèi)型,表明vector是否為空。二者的時(shí)間復(fù)雜度都是O(1)。

所有的STL容器都支持這兩個(gè)方法,含義也相同,之后我們就不再重復(fù)給出。

clear

clear函數(shù)把vector清空。

迭代器

迭代器就像STL容器的“指針”,可以用星號(hào)“*”操作符解除引用。

一個(gè)保存int的vector的迭代器聲明方法為:

vector<int>::iterator it;

vector的迭代器是“隨機(jī)訪問(wèn)迭代器”,可以把vector的迭代器與一個(gè)整數(shù)相加減,其行為和指針的移動(dòng)類(lèi)似??梢园裿ector的兩個(gè)迭代器相減,其結(jié)果也和指針相減類(lèi)似,得到兩個(gè)迭代器對(duì)應(yīng)下標(biāo)之間的距離。

begin/end

begin函數(shù)返回指向vector中第一個(gè)元素的迭代器。例如a是一個(gè)非空的vector,則*a.begin()與a[0]的作用相同。

所有的容器都可以視作一個(gè)“前閉后開(kāi)”的結(jié)構(gòu),end函數(shù)返回vector的尾部,即第n個(gè)元素再往后的“邊界”。*a.end()與a[n]都是越界訪問(wèn),其中n=a.size()。

下面兩份代碼都遍歷了vectora,并輸出它的所有元素。

for (int I = 0; I < a.size(); I ++) cout << a[i] << endl;for (vector<int>::iterator it = a.begin(); it != a.end(); it ++) cout << *it << endl;

front/back

front函數(shù)返回vector的第一個(gè)元素,等價(jià)于*a.begin() 和 a[0]。

back函數(shù)返回vector的最后一個(gè)元素,等價(jià)于*==a.end() 和 a[a.size() – 1]。

push_back() 和 pop_back()

a.push_back(x) 把元素x插入到vector a的尾部。

b.pop_back() 刪除vector a的最后一個(gè)元素。

queue

頭文件

#include <queue>

頭文件queue主要包括循環(huán)隊(duì)列queue和優(yōu)先隊(duì)列priority_queue兩個(gè)容器。

?

用法

queue<int> q;struct rec{…}; queue<rec> q;      //結(jié)構(gòu)體rec中必須定義小于號(hào)priority_queue<int> q;        // 大根堆priority_queue<int, vector<int>, greater<int> q;     // 小根堆
priority_queue<pair<int, int>>q;

循環(huán)隊(duì)列 queue

用法

? push 從隊(duì)尾插入

? pop 從隊(duì)頭彈出

? front 返回隊(duì)頭元素

? back 返回隊(duì)尾元素

優(yōu)先隊(duì)列 priority_queue

用法

? push 把元素插入堆

? pop 刪除堆頂元素

? top 查詢(xún)堆頂元素(最大值)

stack

頭文件

#include

頭文件stack包含棧。聲明和前面的容器類(lèi)似。

push 向棧頂插入

pop 彈出棧頂元素

deque

頭文件

#include <deque>

雙端隊(duì)列deque是一個(gè)支持在兩端高效插入或刪除元素的連續(xù)線性存儲(chǔ)空間。它就像是vector和queue的結(jié)合。與vector相比,deque在頭部增刪元素僅需要O(1)的時(shí)間;與queue相比,deque像數(shù)組一樣支持隨機(jī)訪問(wèn)。

由于deque需要處理內(nèi)部跳轉(zhuǎn),因此速度上沒(méi)有vector快

deque是?個(gè)雙端開(kāi)?的連續(xù)線性空間,其內(nèi)部為分段連續(xù)的空間組成,隨時(shí)可以增加?段
新的空間并鏈接

deque中控器:

deque是由?段?段的定量連續(xù)空間構(gòu)成。?旦有必要在其頭端或者尾端增加新的空間,便
配置?段定量連續(xù)空間,串接在整個(gè)deque的頭端或者尾端

用法

[] 隨機(jī)訪問(wèn)

begin/end,返回deque的頭/尾迭代器

front/back 隊(duì)頭/隊(duì)尾元素

push_back 從隊(duì)尾入隊(duì)

push_front 從隊(duì)頭入隊(duì)

pop_back 從隊(duì)尾出隊(duì)

pop_front 從隊(duì)頭出隊(duì)

clear 清空隊(duì)列

set

頭文件

#include <set>

頭文件set主要包括set和multiset兩個(gè)容器,分別是“有序集合”和“有序多重集合”,即前者的元素不能重復(fù),而后者可以包含若干個(gè)相等的元素。set和multiset的內(nèi)部實(shí)現(xiàn)是一棵紅黑樹(shù),它們支持的函數(shù)基本相同。

用法

set<int> s;struct rec{…}; 
set<rec> s;     // 結(jié)構(gòu)體rec中必須定義小于號(hào)multiset<double> s;size/empty/clear
與vector類(lèi)似

迭代器

set和multiset的迭代器稱(chēng)為“雙向訪問(wèn)迭代器”,不支持“隨機(jī)訪問(wèn)”,支持星號(hào)(*)解除引用,僅支持”++”和–“兩個(gè)與算術(shù)相關(guān)的操作。

設(shè)it是一個(gè)迭代器,例如set::iterator it;

若把it++,則it會(huì)指向“下一個(gè)”元素。這里的“下一個(gè)”元素是指在元素從小到大排序的結(jié)果中,排在it下一名的元素。同理,若把it–,則it將會(huì)指向排在“上一個(gè)”的元素。

begin/end

返回集合的首、尾迭代器,時(shí)間復(fù)雜度均為O(1)。

? s.begin() 是指向集合中最小元素的迭代器。

s.end() 是指向集合中最大元素的下一個(gè)位置的迭代器。換言之,就像vector一樣,是一個(gè)“前閉后開(kāi)”的形式。因此–s.end()是指向集合中最大元素的迭代器。

insert

? s.insert(x)把一個(gè)元素x插入到集合s中,時(shí)間復(fù)雜度為O(logn)。

? 在set中,若元素已存在,則不會(huì)重復(fù)插入該元素,對(duì)集合的狀態(tài)無(wú)影響。

find

s.find(x) 在集合s中查找等于x的元素,并返回指向該元素的迭代器。若不存在,則返回s.end()。時(shí)間復(fù)雜度為O(logn)。

lower_bound/upper_bound

? 這兩個(gè)函數(shù)的用法與find類(lèi)似,但查找的條件略有不同,時(shí)間復(fù)雜度為 O(logn)。

s.lower_bound(x) 查找大于等于x的元素中最小的一個(gè),并返回指向該元素的迭代器。

s.upper_bound(x) 查找大于x的元素中最小的一個(gè),并返回指向該元素的迭代器。

erase

設(shè)it是一個(gè)迭代器,s.erase(it) 從s中刪除迭代器it指向的元素,時(shí)間復(fù)雜度為O(logn)

設(shè)x是一個(gè)元素,s.erase(x) 從s中刪除所有等于x的元素,時(shí)間復(fù)雜度為O(k+logn),其中k是被刪除的元素個(gè)數(shù)。

count

? s.count(x) 返回集合s中等于x的元素個(gè)數(shù),時(shí)間復(fù)雜度為 O(k +logn),其中k為元素x的個(gè)數(shù)。

map

頭文件

? #include <map>

map容器是一個(gè)鍵值對(duì)key-value的映射,其內(nèi)部實(shí)現(xiàn)是一棵以key為關(guān)鍵碼的紅黑樹(shù)。Map的key和value可以是任意類(lèi)型,其中key必須定義小于號(hào)運(yùn)算符。

用法

map<key_type, value_type> name;

? 例如:

? map<long, long, bool> vis;

? map<string, int> hash;

? map<pair<int, int>, vector> test;

? size/empty/clear/begin/end均與set類(lèi)似。

Insert/erase

? 與set類(lèi)似,但其參數(shù)均是pair<key_type, value_type>。

find

? h.find(x) 在變量名為h的map中查找key為x的二元組。

[]操作符

? h[key] 返回key映射的value的引用,時(shí)間復(fù)雜度為O(logn)。

[]操作符是map最吸引人的地方。我們可以很方便地通過(guò)h[key]來(lái)得到key對(duì)應(yīng)的value,還可以對(duì)h[key]進(jìn)行賦值操作,改變key對(duì)應(yīng)的value。

bitset

頭文件

#include<bitset>

用法

代碼含義
bitset < n >a;a有n位,每位都為0
bitset < n >a(b);a是unsigned long型u的一個(gè)副本
bitset < n >a(s);a是string對(duì)象s中含有的位串的副本
bitset < n >a(s,pos,n);a是s中從位置pos開(kāi)始的n個(gè)位的副本
b.any()b中是否存在置為1的二進(jìn)制位,有 返回true
b.none()b中是否沒(méi)有1,沒(méi)有 返回true
b.count()b中為1的個(gè)數(shù)
b.size()b中二進(jìn)制位的個(gè)數(shù)

續(xù)表

代碼含義
b.test(pos)測(cè)試b在pos位置是否為1,是 返回true
b[pos]返回b在pos處的二進(jìn)制位
b.set()把b中所有位都置為1
b.set(pos)把b中pos位置置為1
b.reset()把b中所有位都置為0
b.reset(pos)把b中pos位置置為0
b.flip()把b中所有二進(jìn)制位取反
b.flip(pos)把b中pos位置取反
b.to_ulong()用b中同樣的二進(jìn)制位返回一個(gè)unsigned long值

array

頭文件

#include<array>

array是C++11新增的容器,效率與普通數(shù)據(jù)相差無(wú)幾,比vector效率要高,自身添加了一些成員函數(shù)。

和其它容器不同,array 容器的大小是固定的,無(wú)法動(dòng)態(tài)的擴(kuò)展或收縮,只允許訪問(wèn)或者替換存儲(chǔ)的元素。

http://m.aloenet.com.cn/news/1518.html

相關(guān)文章:

  • 在什么網(wǎng)站可以做外貿(mào)出口勞保鞋sem廣告投放是做什么的
  • ps做網(wǎng)站顯示內(nèi)容參考百度發(fā)廣告需要多少錢(qián)
  • 做設(shè)計(jì)去那些網(wǎng)站找素材旅游產(chǎn)品推廣有哪些渠道
  • 為什么建設(shè)法律法規(guī)網(wǎng)站seo優(yōu)化費(fèi)用
  • 寧波網(wǎng)站建設(shè)信息推薦百度在線客服
  • 北京 網(wǎng)站 優(yōu)化足球比賽今日最新推薦
  • 響應(yīng)式網(wǎng)站切圖泉州百度競(jìng)價(jià)公司
  • 在線制作圖片加文字的軟件九江seo優(yōu)化
  • b站到底是哪個(gè)網(wǎng)站常見(jiàn)的網(wǎng)絡(luò)營(yíng)銷(xiāo)方式有哪幾種
  • 購(gòu)物商城網(wǎng)站設(shè)計(jì)方案愛(ài)站關(guān)鍵詞挖掘查詢(xún)工具
  • 深圳電器公司網(wǎng)頁(yè)seo
  • 做游戲CG分享的網(wǎng)站店鋪推廣
  • 網(wǎng)站訂單系統(tǒng)模板下載西地那非片吃了能延時(shí)多久
  • 網(wǎng)站建設(shè)公司的服務(wù)器杭州seo全網(wǎng)營(yíng)銷(xiāo)
  • 建站公司合肥百度的關(guān)鍵詞優(yōu)化
  • wordpress頁(yè)面多打開(kāi)空白頁(yè)seo服務(wù)運(yùn)用什么技術(shù)
  • 畢設(shè)做網(wǎng)站答辯稿外貿(mào)營(yíng)銷(xiāo)策略都有哪些
  • 云虛擬主機(jī)做二個(gè)網(wǎng)站網(wǎng)站查詢(xún)域名ip
  • 網(wǎng)站充值平臺(tái)怎么做的湖南百度推廣公司
  • 怎么在手機(jī)上制作網(wǎng)站嗎網(wǎng)上競(jìng)價(jià)平臺(tái)
  • 網(wǎng)站開(kāi)發(fā)過(guò)程無(wú)錫網(wǎng)站排名公司
  • 網(wǎng)站推廣需要域名遷移嘉興seo外包服務(wù)商
  • 土巴兔裝修貴嗎seo的最終是為了達(dá)到
  • 網(wǎng)站建設(shè)的基礎(chǔ)知識(shí)與維護(hù)百度關(guān)鍵詞廣告怎么收費(fèi)
  • 設(shè)置自己的網(wǎng)站三亞百度推廣公司電話
  • 翠竹營(yíng)銷(xiāo)網(wǎng)站設(shè)計(jì)知名的seo快速排名多少錢(qián)
  • 西安網(wǎng)站策劃設(shè)計(jì)中國(guó)移動(dòng)有免費(fèi)的視頻app
  • 網(wǎng)站規(guī)劃怎么寫(xiě)英文seo兼職
  • php企業(yè)網(wǎng)站開(kāi)發(fā)框架電商產(chǎn)品推廣方案
  • 環(huán)球影城漫游卡持卡人是什么意思重慶seo優(yōu)化公司