- 博客(10)
- 资源 (2)
- 收藏
- 关注
转载 new(p) T1(value)
这叫place new,在指针p所指向的内存空间创建一个类型为T1的对象。调用的构造函数接受一个类型为const T2&(或其他兼容类型)的参数new placement 你可以简单的理解为C中的realloc,就是在已有空间的基础上,重新分配一个空间,可以不破坏原来数据,也可以把数据全部用新值覆盖 一下是我搜集的一些笔记 如果你想在预分配的内存上创建对象,用缺
2014-02-17 18:40:35 1077
转载 auto
auto:用来声明自动变量。它是存储类型标识符,表明变量(自动)具有本地范围,块范围的变量声明(如for循环体内的变量声明)默认为auto存储类型。其实大多普通声明方式声明的变量都是auto变量,他们不需要明确指定auto关键字,默认就是auto的了。auto变量在离开作用域是会变程序自动释放,不会发生内存溢出情况(除了包含指针的类)。使用auto变量的优势是不需要考虑去变量是否被释放,比较安全
2014-02-17 18:08:39 669
转载 map 和 set
STL map和set的使用虽不复杂,但也有一些不易理解的地方,如: 为何map和set的插入删除效率比用其他序列容器高? 为何每次insert之后,以前保存的iterator不会失效? 为何map和set不能像vector一样有个reserve函数来预分配数据? 当数据元素增多时(10000到20000个比较),map和set的插入和搜索
2014-02-17 16:13:32 431
转载 [C++ Primer] 顺序容器
顺序容器:vector,list, deque1.顺序容器的初始化:a. C c; 创建一个名为c的空容器b. C c(c2); 创建容器c2的副本c,c和c2必须有相同的容器类型,并存放相同类型的元素c. C c(b, e); c 初始化为一段元素的副本,使用迭代器时不要求容器类型相同,容器内的元素类型也可以不相同,只要能将要复制的元素转换为所构建的新容器的元素类
2013-11-24 16:06:16 511
转载 《海量数据处理常用思路和方法》
1.Bloom filter 适用范围:可以用来实现数据字典,进行数据的判重,或者集合求交集 基本原理及要点: 对于原理来说很简单,位数组+k个独立hash函数。将hash函数对应的值的位数组置1,查找时如果发现所有hash函数对应位都是1说明存在,很明显这个过程并不保证查找的结果是100%正确的。同时也不支持删除一个已经插入的关键字,因为该关键字对应的位会牵动到其他的关键字。
2013-06-22 21:17:33 353
原创 strdup
头文件:#include 用法:char *strdup(char *s);功能:复制字符串s说明:strdup()在内部调用了malloc()为变量分配内存,不需要使用返回的字符串时,需要用free()释放相应的内存空间,否则会造成内存泄漏举例:// strdup.c//#include #include #include int main(){
2013-04-17 22:06:31 464
原创 常量指针和指针常量
int a;int * const p = &a //指针常量,*p可以修改*p = 8;(OK) p不可以修改 p++(ERROR)int a,b;const int *p = &a; //常量指针 *p不可修改 *p = 8;(ERROR)
2013-04-16 22:32:38 371
转载 typeid(第二篇)
typeid运算符使得我们可以在程序运行期间来确定一个对象的类型。预算符typeid的结果是一个const type_info&,即一个type_info的常量引用。该引用代表type-id或者expression的类型,这取决与我们使用typeid的哪一种形式。要获取更多信息请参考type_info类。当用一个多态类类型作为左值时,typeid就会在运行时执行类型检查。typeid通常用于对象的
2010-05-26 23:18:00 450
转载 typeid
1. 不同编译器typeid后的信息不完全相同的。 一些编译器用i表示int,f表示float,而一些使用全名,即int,float。 在检测类型时使用: if (typeid(classname).name() == typeid(valuename).name()) { // ... } 2. 至于后面的base前面多出个4,那是因为类名base占个4个字节。 typeid(..).name(
2010-05-26 23:01:00 566
转载 名称空间
命名空间std,using namespace std在标准C++以前,都是用#include这样的写法的,因为要包含进来的头文件名就是iostream.h。标准C++引入了名字空间的概念,并把iostream等标准库中的东东封装到了std名字空间中,同时为了不与原来的头文件混淆,规定标准C++使用一套新的头文件,这套头文件的文件名后不加.h扩展名,如iostream、string等等,并且把
2010-05-25 23:23:00 648
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人