1、const_cast
const_cast用來移除變量的const屬性,例如下面的代碼
const int constant = 21;
const int* const_p = &constant;
int* modifier = const_cast(const_p);
*modifier = 7;
如果將結(jié)果打印
cout<<"constant: "<< constant <
cout<<"const_p: "<< *const_p <
cout<<"modifier: "<< *modifier <
/**
constant: 21
const_p: 7
modifier: 7
**/
可見constant值不變,但地址居然相同,很奇怪
cout<<"constant: "<< &constant <
cout<<"const_p: "<< const_p <
cout<<"modifier: "<< modifier <
/**
constant: 0x7fff5fbff72c
const_p: 0x7fff5fbff72c
modifier: 0x7fff5fbff72c
**/
2、map
map是一種關(guān)聯(lián)容器,鍵要提供小于排序,鍵不能重復(fù)。
map添加數(shù)據(jù)如下
map maplive;
1.maplive.insert(pair(102,"aclive"));
2.maplive.insert(map::value_type(321,"hai"));
3, maplive[112]="April";//map中最簡單最常用的插入添加!
刪除元素:maplive.erase(l_it)
3、仿函數(shù)適配器
當(dāng)有一個(gè)二元函數(shù),我們想綁定其中的一個(gè)參數(shù)時(shí),可以用bind1st/bind2nd;當(dāng)我們想將一個(gè)類的成員函數(shù)用作全局函數(shù)時(shí),可以用mem_fun(&lei::pring)/mem_fun_ref(&lei::pring),具體要看容器存貯的是對象指針還是對象本身。