Primer 第八章 順序容器

2021-10-09 03:32:49 字數 2426 閱讀 9271

六種順序容器

不支援快速隨機訪問

無腦vector

要求中間插入或者刪除,list 或者 forward_list

復合型別,可以先用 list 或者 forward_list 做,再用 vector 存放

容器操作

size

add/delete element

get iterator

iterator range

called left-inclusive interval

[begin,end)

標準庫 array 的大小也是型別的一部分。定義乙個 array ,除了指定元素型別,還要指定容器大小

array 支援拷貝初始化,但必須陣列型別匹配

array 不支援 assign, 也不能列表賦值

可以將const char* 轉換為 string

順序容器操作

push_back() emplace_back()

push_front() emplace_front()

insert(iterator,t) emplace(iterator,args) 在迭代器指向的元素之前建立乙個值為t或由args建立的元素。返回指向新新增元素的迭代器

insert(p,n,t) 在迭代器指向的元素之前建立 n 個值為 t 元素。返回指向新新增元素的迭代器

insert(p,b,e) 將迭代器 b 和 e 指定範圍中的元素插入到迭代器p所指之前。

insert(p,il) 將il列表中的元素值插入迭代器p指向的元素之前。返回新新增的第乙個元素的迭代器;列表空則返回p

erase()

插入後返回插入的第乙個的迭代器

刪除後返回刪除的後乙個的迭代器

back() front() [n] atn返回引用

forward_list

before_begin()

insert_after()

erase_after()

change the size of the container

resize(n) resize(n,t)(the value of the new-added element is t)

container-size manage

shrink_to_fit() (使capacity()等於size())//only for vector string deque

capacity() (不重新分配記憶體空間的話,可以儲存多少元素)//only for vector string

reserve(n) (設定下次分配至少容納n個元素的記憶體空間)//only for vector string超出後恢復預設增長方式

引數args詳見p323

整體查詢

字元查詢

args

對接容器,統一操作

stack //based on deque

queue //based on deque

priority_queue //based on vector

所有介面卡都要求容器具有新增、刪除以及訪問尾元素的能力

std::vector<

int>vi;

std::stack<

int>

svi(vi)

;//將vi拷貝到svi

std::stack<

int,std::vector<

int>>empty_svi;

//建立空棧

std::stack<

int>si;

//建立空棧

s.pop() 刪除棧頂元素,但不返回該元素值

s.push() 建立新元素壓入棧頂,該元素通過拷貝或移動item而來,或者由args構造

s.emplace(args)

s.top() 返回棧頂元素,但不將元素彈出棧

q.pop() 刪除queue首元素或者priority_queue的最高優先順序元素

q.front() 返回首元素,不刪除only for queue

q.back() 返回尾元素,不刪除only for queue

q.top() 返回最高優先順序元素,但不刪除該元素only for priority_queue

q.push()

q.emplace() 可以當q.push()用

Primer 第八章 深入IO

istream 輸入流 型別 cin 為其乙個物件 從標準輸入讀取資料 ostream 輸出流 型別 cout 為其乙個物件 向標準輸出寫入資料 cerr 為其乙個物件 通常輸出程式錯誤資訊 寫入到標準錯誤 重定向 從乙個 istream 物件讀取輸入資料 向乙個 ostream 物件寫入輸出資料 ...

第八章 指標 第八章 指標

1 什麼是位址 include using namespace std int main 11 在堆中建立對像 我們既然可以在堆中儲存變數,那麼也就可以儲存對像,我們可以將對像儲存堆中,然後通過指標來訪問它 include using namespace std class human 14 在建構...

第八章(筆記)

能在 中進行記憶體單元的定址的暫存器只有4個,分別是bx si di bp 其中bx bp 是基址,bx對應的段位址是ds,bp對應的段位址是ss si di 是變址,單獨使用時段位址是ds,組合使用段位址是跟隨組合的基址對應的段位址 中進行記憶體單元定址彙總 si di bx bp 常量 si 常...