2013年1月16日

STL map与Boost unordered_map

摘要: 今天看到boost::unordered_map, 它与 stl::map的区别就是,stl::map是按照operator<比较判断元素是否相同,以及比较元素的大小,然后选择合适的位置插入到树 中。所以,如果对map进行遍历(中序遍历)的话,输出的结果是有序的。顺序就是按照operator< 定义的大小排序。而boost::unordered_map是计算元素的Hash值,根据Hash值判断元素是否相同。所以,对unordered_map进行遍历,结果是无序的。用法的区别就是,stl::map 的key需要定义operator< 。 而boost::unordered_ma 阅读全文

posted @ 2013-01-16 21:21 androidme 阅读(210) 评论(0) 推荐(0) 编辑

static_cast, dynamic_cast, reinterpret_cast, const_cast区别比较

摘要: http://www.cnblogs.com/jerry19880126/archive/2012/08/14/2638192.html隐式转换(implicit conversion)short a=2000;int b;b=a;short是两字节,int是四字节,由short型转成int型是宽化转换(bit位数增多),编译器没有warning,如下图所示。宽化转换 (如char到int,int到long long,int到float,float到double,int到double等)构成隐式转换,编译器允许直接转换。但若反过来double a=2000;short b;b=a;此时,是从8 阅读全文

posted @ 2013-01-16 21:19 androidme 阅读(2005) 评论(0) 推荐(0) 编辑

const修饰指针和引用的用法

摘要: const修饰指针和引用的用法,对于初学C++的人直是讳莫如深,不知所云. 一旦你了解了其用法,一切便不值一哂了.下面我为读者一一释疑: 大致说来其可分为三种情况: const修饰指针,const修饰引用,const修饰指针的引用.1.const修饰指针const修饰指针又可分为三种情况:a.const修饰指针本身b.const修饰指针所指的变量(或对象)c.const修饰指针本身和指针所指的变量(或对象)(1).const修饰指针本身这种情形下,指针本身为常量,不可改变,任何修改指针本身的行为都是非法的.例如:const int a = 1;const int b = 2;int i = 3 阅读全文

posted @ 2013-01-16 21:18 androidme 阅读(864) 评论(0) 推荐(0) 编辑

导航