1、const_cast
const_cast用来移除变量的const属性,例如下面的代码
const int constant = 21;
const int* const_p = &constant;
int* modifier = const_cast(const_p);
*modifier = 7;
如果将结果打印
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是一种关联容器,键要提供小于排序,键不能重复。
map添加数据如下
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、仿函数适配器
当有一个二元函数,我们想绑定其中的一个参数时,可以用bind1st/bind2nd;当我们想将一个类的成员函数用作全局函数时,可以用mem_fun(&lei::pring)/mem_fun_ref(&lei::pring),具体要看容器存贮的是对象指针还是对象本身。