Geekband-job3.2

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),具体要看容器存贮的是对象指针还是对象本身。

你可能感兴趣的:(Geekband-job3.2)