c 容器相關

2021-10-03 11:43:14 字數 3340 閱讀 1490

順序容器

所有的vector都適用於deque

list

特有的成員函式

push_front 在前面插入

pop_front刪除前面的元素

sort 排序(list不支援stl的演算法sort)

remove 刪除和指定值相同的所有元素

unique 刪除所有和前乙個元素相同的元素(做到不重複需要unique之前需要sort)

merge合併兩個鍊錶,並清空被合併的那個

reverse 顛倒鍊錶

splice在指定位置前面插入另乙個鍊錶中的乙個或多個元素,並在另乙個鍊錶刪除被插入的元素

lst1.splice(p1,lst2,p2,p3)//將[p2,p3)插入p1之前,並從lst2中刪除[p2,p3)

*關聯容器的成員函式

set與muultiset

iterator find:查詢等於某個值的元素

iterator lower_bound:查詢某個下界

iterator upper_bound:查詢某個上界

equal_range: 同時查詢上界和下界

int count:計算等於某個值的元素個數

void insert:插入某個元素或某個區間

*map與multimap

1直接賦值,例如 mp[「tom」]=0

2通過插入乙個型別為 pair的值,例如 mp.insert(pair(「alan」,100));

map::iterator it;//迭代器

cout << iter->first << " " << iter->second << endl;//不能用iter.first

但是可以過載<<

template

ostream&operator<<(ostream&o,const pair&p)

{o<<"("//map專用

容器介面卡

stack

push 插入元素

pop 彈出元素

top 返回棧頂的元素的引用

queue

push 插入元素發生在尾部

pop 彈出元素對頭

top 返回棧頂的元素的引用對頭

back 返回棧頂的元素的引用尾部

priority_queue

保證優先順序最大的在前面,保證最大的在前面

size 還有多少數

empty 是否空

一些常用的c++演算法成員函式

1不變序列演算法

min 求兩個物件中較小的1

max 求兩個物件較大的

***********************************

min_element求區間最小的1

max_element求區間最大的//1有點問題

for_each對區間每個元素都做這種操作

count計算區間等於某值的元素個數*****************************

count_if計算區間符合某種條件的元素個數

find在區間查詢某值的元素************************************

find_if區間符合某種條件的元素

find_end從區間查詢另乙個區間出現的最後一次位置

find_first_of從區間查詢另乙個區間出現的第一次的元素

adjacent_find從區間查詢第一次出現連續兩個相等元素的位置**********

search在區間查詢另乙個區間第一次出現的位置*****************

search_n在區間查詢第一次出現等於某值的連續n個元素

equal判斷兩個區間是否相等****************************************

mismatch逐個比較兩個區間的元素,返回第一次發生不相等的位置

lexicographical_compare按字典比較兩個區間的大小

2.變值演算法

for_each 對區間中的每個元素都做某種操作

copy複製乙個區間到別處****************************************

copy_backward複製乙個區間到別處但目標區前是從後往前被修改的

transform將乙個區間的元素變形後拷貝到另乙個區間//迭代器

swap_ranges交換兩個區間的內容

fill用某個值填充區間**********************************************

fill_n用某個值代替區間的n個元素

generate用某個操作的結果填充區間

generate_n用某個操作的結果替換區間中的n個元素

replace將區間中某個值替換為另乙個值***************************

replace_if將區間中符合某種條件的值替換成另乙個值

replace_copy將乙個區間拷貝到另乙個區間,拷貝時某個值要換成新值拷過去

replace_copy_if將乙個區間拷貝到另乙個區間,拷貝時符合某種條件的值要換成新值拷過去

accumulate(first,last,累加的數);求和

3刪除演算法

remove 刪除區間中等於某個值的元素

unique刪除區間中連續相等的元素,只留下乙個

4變序演算法

random_shuffle(first,last);隨機打亂***************************

reverse 顛倒區間次序

next_permutation將區間改為下乙個排列

prev_permutation將區間改為上乙個排列//可以list

5排序演算法

隨機訪問迭代器 不支援關聯容器和list

sort()從小到大排序

6有序區間演算法

要求是從小到大排好的隨機訪問迭代器 不支援關聯容器和list

binary_search判斷區間是否又某個元素

lower_bound查詢最後乙個不小於某個值的元素的位置

upper_bound查詢第乙個大於某個值的元素位置

equal_range同時獲取upper_bound,lower_bound

7bitset

bitset&set();全部為1

bitset&set(size_t pos,bool val=true);設定某位

bitset&reset();全部為0

bitset&reset(size_t pos);某位設為0

bitset&flip();全部翻轉

bitset&flip(size_t pos)翻轉某位

容器相關操作

顯示docker容器列表 命令格式 docker ps a實時操作 docker ps a container id 容器id image 依賴映象 command 容器的啟動命令 created 容器的建立時間 status 容器是否啟動與時長 ports 埠 names 容器的名字 依賴映象 建...

set相關容器

簡介 本質 set和multiset區別 功能描述 建立set容器以及賦值 構造 賦值 示例 include 構造和賦值 sets1 s1.insert 10 s1.insert 30 拷貝構造 sets2 s1 賦值 sets3 s3 s2 函式原型 示例 include sets1 s1.ins...

容器相關命令

檢視正在執行的容器 docker ps 檢視所有容器 docker ps a 檢視最後一次執行的容器 docker ps l 檢視停止的容器 docker ps f status exited 建立容器常用的引數說明 建立容器命令 docker run i 表示執行容器 t表示容器啟動後會進入其命令...