#include#includeusing namespace std;
//map容器:
/*map的特性是,所有元素都會根據元素的鍵值自動排序。
map所有的元素都是pair,同時擁有實值和鍵值,
pair的第一元素被視為鍵值,第二元素被視為實值,map不允許兩個元素有相同的鍵值。
*//*
map建構函式
mapmaptt;//map預設建構函式:
map(const map &mp);//拷貝建構函式
*//*
map賦值操作
map& operator=(const map &mp);//過載等號操作符
swap(mp);//交換兩個集合容器
*/void test01()
cout << endl;}/*
map大小操作
size();//返回容器中元素的數目
empty();//判斷容器是否為空
map刪除操作
clear();//刪除所有元素
erase(pos);//刪除pos迭代器所指的元素,返回下乙個元素的迭代器。
erase(beg,end);//刪除區間[beg,end)的所有元素 ,返回下乙個元素的迭代器。
erase(keyelem);//刪除容器中key為keyelem的對組。
map查詢操作
find(key);//查詢鍵key是否存在,若存在,返回該鍵的元素的迭代器;/若不存在,返回map.end();
count(keyelem);//返回容器中key為keyelem的對組個數。對map來說,要麼是0,要麼是1。對multimap來說,值可能大於1。
lower_bound(keyelem);//返回第乙個key>=keyelem元素的迭代器。
upper_bound(keyelem);//返回第乙個key>keyelem元素的迭代器。
equal_range(keyelem);//返回容器中key與keyelem相等的上下限的兩個迭代器。
*/void test02()
cout << endl;
map::iterator pos = m.find(1);
if (pos != m.end())
else
pos = m.find(2);
if (pos != m.end())
else
//count(keyelem);//返回容器中key為keyelem的對組個數。對map來說,要麼是0,要麼是1。對multimap來說,值可能大於1。
int num = m.count(2);
cout << "num= " << num << endl;
/* lower_bound(keyelem);//返回第乙個key>=keyelem元素的迭代器。
upper_bound(keyelem);//返回第乙個key>keyelem元素的迭代器。
equal_range(keyelem);//返回容器中key與keyelem相等的上下限的兩個迭代器。
*/ map::iterator it_1 = m.lower_bound(3);
if (it_1 != m.end())
map::iterator it_2 = m.upper_bound(3);
if (it_2 != m.end())
pair::iterator, map::iterator> it_3 = m.equal_range(3);
if (it_3.second!= m.end())
}//指定排序規則:
//仿函式:
class mycompare
};void test03()
cout << endl;
}int main()
STL map 關聯式容器
map就是乙個對映,不過我在程式中對它的處理沒有很複雜,大多是把它當成乙個下標可以為任意型別的陣列。map在程式中挺常用的,也為字串處理提供了簡便,比如 atcoder 3941 abc091 b題 include include include include include using name...
容器基本操作
docker run name fang it image id bin bash 執行的shell docker ps a 檢視所有容器,l 檢視最近執行容器 docker inspect 檢視容器的詳細資訊 docker start i container id 或者名字也可以 docker r...
容器基本操作
目錄docker建立的容器是處於停止狀態,可以使用docker start命令來啟動 docker create it ubuntu latest docker start 容器id docker stop 容器id docker run ubuntu bin echo hello world 執行...