set:
所有元素在插入時自動排序,底層結構用二叉樹實現。
set和multiset的區別:
set不允許容器中有重複的元素,multiset允許容器中有重複的元素。
set構造和賦值:
構造:set大小和交換://預設建構函式
setst;
//拷貝建構函式
set(const set &st);
賦值://過載等號操作符
set& operator=(const set &st);
//返回容器中元素的數目set插入和刪除:size();
//判斷容器是否為空
empty();
//交換兩個集合容器
swap(st);
//在容器中插入元素。例子:insert(elem);
//清除所有元素
clear();
//刪除pos迭代器所指的元素,返回下乙個元素的迭代器。
erase(pos);
//刪除區間[beg,end)的所有元素 ,返回下乙個元素的迭代器。
erase(beg, end);
//刪除容器中值為elem的元素。
erase(elem);
#include #include using namespace std;
void print_set(const set& s)
couts.insert(10);
s.insert(20);
s.insert(15);
s.insert(14);
s.insert(12);
print_set(s);
s.erase(s.begin());
print_set(s);
s.erase(20);
print_set(s);
s.clear();
print_set(s);
}int main()
set查詢和統計:
//查詢key是否存在,若存在,返回該鍵的元素的迭代器;若不存在,返回set.end();pair對組建立:find(key);
//統計key的元素個數
count(key);
對於成對出現的資料,利用對組可以返回兩個資料。
兩種建立方式:
pairp ( value1, value2 );例子:pairp = make_pair( value1, value2 );
#include #include using namespace std;map大小和交換:void test01()
};void test01()
couts2.insert(15);
s2.insert(10);
s2.insert(20);
s2.insert(16);
for(set::iterator it=s2.begin();it!=s2.end();it++)
cout<map:
map中所有元素都是pair;
pair中第乙個元素為key,起到索引所用,第二個元素為value;
所有元素會根據元素的key進行排序。
本質:底層使用二叉樹實現。
map和multimap區別:
map中不允許容器中有重複key值的元素;
multimap允許容器中有重複key值的元素。
map構造和賦值:
構造://map預設建構函式:
mapmp;
//拷貝建構函式
map(const map &mp);
賦值://過載等號操作符
map& operator=(const map &mp);
//返回容器中元素的數目map插入和刪除:size();
//判斷容器是否為空
empty();
//交換兩個集合容器
swap(st);
//在容器中插入元素。map查詢和統計:insert(elem);
//清除所有元素
clear();
//刪除pos迭代器所指的元素,返回下乙個元素的迭代器。
erase(pos);
//刪除區間[beg,end)的所有元素 ,返回下乙個元素的迭代器。
erase(beg, end);
//刪除容器中值為key的元素。
erase(key);
//查詢key是否存在,若存在,返回該鍵的元素的迭代器;若不存在,返回set.end();例子:find(key);
//統計key的元素個數
count(key);
#include #include using namespace std;
void print_map(map&m)
void test03(){
mapm;
m.insert(make_pair(1,20));
m.insert(make_pair(2,30));
m.insert(make_pair(3,40));
if(m.find(2)!=m.end()){
cout<<"找到了元素"