
STL 源码
qauzy
这个作者很懒,什么都没留下…
展开
-
STL源码(1)迭代器原理与萃取技术
一、迭代器概要1.迭代器依附于容器,没有独立而泛用的迭代器2.迭代器是一种smart pointer,迭代器最重要的编程工作是重载operator* 和operator ->3.原生指针也是迭代器4.设计适当的相应型别是迭代器的责任;设计适当的迭代器则是容器的责任二、迭代器的相应型别value type 所指对象型别difference type 两个迭代器之间的距离原创 2016-04-13 23:53:43 · 660 阅读 · 1 评论 -
宏定义中的do...while(0)
经常看到类似宏定义,do{...}while(0)#define SAFE_DELETE(p) do{ delete p; p = NULL} while(0) 如果去掉do{...}while(0),对于如下代码:if(NULL != p) SAFE_DELETE(p)else ...do sth... 将导致两个问题:1)if语句后面有两个语句,无论测试是否通过,第原创 2016-04-14 15:54:35 · 317 阅读 · 0 评论 -
迭代器失效之原理分析
1 vector迭代器失效1.1 vector迭代器的实质vector迭代器实质为指针class vector : protected _Vector_base<_Tp, _Alloc> { // requirements: __STL_CLASS_REQUIRES(_Tp, _Assignable);private: typedef _Vector_base<...原创 2018-05-18 08:29:58 · 442 阅读 · 0 评论 -
C++仿函数和()运算符重载
群上一网友贴了一段类似仿函数用法,问大家什么意思。如下:大家说了一通,结果提问人说代码错了,氛围有点尴尬。。。哈哈。笑完之后,借着这个机会整理下。1)仿函数定义仿函数(functor),就是使一个类的使用看上去象一个函数。其实现就是类中实现一个operator(),这个类就有了类似函数的行为,就是一个仿函数类了。2)实现例子#include <iostream> using na...原创 2018-05-16 08:51:19 · 2087 阅读 · 3 评论 -
标准库string类型及其实现原理
1 string简介string类型支持长度可变的字符串,C++标准库将负责管理与存储字符串相关的内存,以及提供各种有用的操作。2 string头文件#include<string>#using std:string;3 string 操作3.1 string初始化sting s1; //默认构造函数string s2(s1); //将s2初始化为s1的副本string s3...原创 2018-06-05 00:52:29 · 1949 阅读 · 0 评论