09 2014 档案
摘要:baidu的笔试题目用C语言实现一个公用库函数void * memmove(void *dest,const void *src,size_t n)。该函数的功能是拷贝src所指的内存内容前n个字节到dest所指的地址上。注意,作为公用库函数,请注意安全检查,注意处理内存区重合的情况。void* m...
阅读全文
摘要:STL提供了许多好用的数据结构与算法,使我们不必为做许许多多的重复劳动。STL里实现了一个树结构-Red-Black Tree,它也是STL里唯一实现的一个树状数据结构,并且它是map, multimap,set,multiset的底层实现,如果学会了Red-Black Tree,那么对我们高效的运...
阅读全文
摘要:秀秀是我高中很要好的朋友,同在一个班里度过了高三的辛苦时光。她学习努力,成绩很棒,后来考上了北京的名校,现在在离我不远的大学里读研究生,同时在一家500强公司里做实习生。秀秀所在的公司是全球IT领域首屈一指的老大哥公司,但是她在里面做人力资源部实习生,而她的专业好像是什么行政管理还是什么管理来着,反...
阅读全文
摘要:双向循环链表list list是双向循环链表,,每一个元素都知道前面一个元素和后面一个元素。在STL中,list和vector一样,是两个常被使用的容器。和vector不一样的是,list不支持对元素的任意存取。list中提供的成员函数与vector类似,不过list提供对表首元素的操作push_f...
阅读全文
摘要:谷歌多年盘踞“全球最佳雇主榜”前几位并且曾经数次蝉联榜首,而它选拔聘用人才的标准也是出了名的高,其中相当出名的一条是“名校情结”——无论在哪个国家,谷歌都异常青睐毕业于顶尖学府的精英,并且会参考他们大学阶段的成绩单。如果小编说,谷歌也曾经录用过一位没受过正规大学教育、连本科文凭都没有、基本全靠自学成...
阅读全文
摘要:STL中,traits编程技法得到了很大的应用,了解这个,才能一窥STL奥妙所在。先将自己所理解的记录如下:Traits技术可以用来获得一个 类型 的相关信息的。 首先假如有以下一个泛型的迭代器类,其中类型参数 T 为迭代器所指向的类型:templateclassmyIterator{...};当我...
阅读全文
摘要:1. 泛型指针泛型指针有多种含义。(1) 指void*指针,可以指向任意数据类型,因此具有“泛型”含义。(2) 指具有指针特性的泛型数据结构,包含泛型的迭代器、智能指针等。广义的迭代器是一种不透明指针,能够实现遍历访问操作。通常所说的迭代器是指狭义的迭代器,即基于C++的STL中基于泛型的itera...
阅读全文
摘要:今天Aear讲的是class.ctor也就是constructor,和 class.dtor,destructor.相信大家都知道constructor和destructor是做什么用的,基本功能我就不废话了。下面先说效率的问题,让我们看个简单的例子:classSomeClass;//forward...
阅读全文
摘要:【FROM MSDN && 百科】原型: void *memmove( void* dest, const void* src,size_tcount );#include由src所指内存区域复制count个字节到dest所指内存区域。src和dest所指内存区域可以重叠,但复制后dest内容会被更...
阅读全文
摘要:今天在读《STL源码剖析》空间配置器第二级时看到了这句,有点不解,于是查阅后知:obj后面是个指针 STL_VOLATILE也应该是个类型定义的吧,程序中应该有define来对它定义。所以就是指针的指针。。指针,也就是地址,所以是__my_free_list是一个地址,*__my_free_list...
阅读全文
摘要:题记:内存管理一直是C/C++程序的红灯区。关于内存管理的话题,大致有两类侧重点,一类是内存的正确使用,例如C++中new和delete应该成对出现,用RAII技巧管理内存资源,auto_ptr等方面,很多C/C++书籍中都使用技巧的介绍。另一类是内存管理的实现,如linux内核的slab分配器,S...
阅读全文
posted @ 2014-09-02 22:43
RanShW
摘要:在C和C++中,有三种使用存储区的基本方式:[静态存储区(Static Memory)]在静态存储区中,连接器(linker)根据程序的需求为对象分配空间。全局变量、静态类成员以及函数中的静态变量都被分配在该区域中。一个在该区域中分配的对象只被构造一次,其生存期一直维持到程序结束。在程序运行的时候...
阅读全文
posted @ 2014-09-02 20:37
RanShW
摘要:在STL中为了提供通用的操作而又不损失效率,我们用到了一种特殊的技巧,叫traits编程技巧。具体的来说,traits就是 通过定义一些结构体或类,并利用模板类特化和偏特化的能力,给类型赋予一些特性,这些特性根据类型的不同而异。在程序设计中可以使用这些traits来判 断一个类型的一些特性,引发C+...
阅读全文
posted @ 2014-09-02 16:47
RanShW
摘要:一个是用来传值的 一个是用来获取首地址的&(引用)==>出现在变量声明语句中位于变量左边时,表示声明的是引用.例如: int &rf; // 声明一个int型的引用rf.&(取地址运算符)==>在给变量赋初值时出现在等号右边或在执行语句中作为一元运算符出现时 表示取对象的地址.在C++中,既有引用又...
阅读全文
posted @ 2014-09-02 15:37
RanShW
摘要:首先,C++标准规定:delete空指针是合法的,没有副作用。但是,delete p后,只是释放了指针指向的内存空间。p并不会自动被置为NULL,而且指针还在,同时还指向了之前的地址。 问题来了,对一个非空指针delete后,若没有赋NULL,若再次delete的话,有可能出现问题。如下代码int ...
阅读全文
posted @ 2014-09-02 10:28
RanShW
摘要:C++学了这么多年你知道为什么定义类时,类的定义放在.h文件中,而类的实现放在cpp文件中。它们为什么能够关联到一起呢?你知道什么东西可以放在.h文件中,什么不能。什么东西又可以放在cpp文件中。如果你忘记了或是压根就不明白,那么读过此文你会清晰无比!!首先谈下声明与定义的区别。 声明是将一个名称引...
阅读全文
posted @ 2014-09-01 21:31
RanShW

浙公网安备 33010602011771号