
读侯捷STL源码剖析
文章平均质量分 73
xiahuixia111
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
对空指针赋值的问题 指针的指针 指针的指针和指针数组
关于对空指针赋值的问题首先说一下什么是指针:假设 有语句 int a=10;那么编译器就在内存中开辟1个整型单元存放变量a,我们假设这个整型单元在内存中的地址是 0x1000;那么内存0x1000单元中存放了数据10,每次我们访问a的时候,实际上都是访问的0x1000单元中的10.现在定义:int *p; p=&a;当编译器遇到语句int *p原创 2013-09-11 17:14:32 · 3446 阅读 · 0 评论 -
强制转换
为了体验一下强制转换,我写了如下几行程序#include using namespace std; void main(){char * a = (char *) malloc(100);int * p =(int *)a;int *q= p;*p=1;p++;*p=2;for(int i=1;i{cout ++q;原创 2013-09-13 16:46:51 · 673 阅读 · 0 评论 -
模板类的静态成员变量
我自己写了一个简易的空间适配器代码如下,后来发现,不同类型的类模板共享的静态成员变量不是同一块。这可以通过查看不同类型类模板静态成员的地址,地址相同,表示共享的是同一块,不同则表示不是同一块。cout::free_list[i]cout::free_list[i]也就是说:类模板的静态成员变量是所有同类型的类模板实例共享的一块数据。#include#includeu原创 2013-09-16 14:16:50 · 2119 阅读 · 0 评论 -
仿list的iterator
#includeusing namespace std;struct _iterator{int a;_iterator(int m):a(m){}};_iterator add(int a, int b){return a+b;}void main(){add(4, 2);}原创 2013-09-23 19:54:39 · 749 阅读 · 0 评论 -
stl_list的back()函数疑问与解析
stl_list.h的back( )函数是这样的:reference back( ){return *(--end());}iterator end(){return node;}其中reference定义为:typedef T value_type;typedef value_type& reference;一开始我的疑问是:原创 2013-09-24 08:19:10 · 1788 阅读 · 0 评论 -
list中节点如何与迭代器关联(List中iterator begin() { return (link_type)((*node).next); }的疑问)
今天在看list的时候遇到了下面同样的问题:在stl的List中 begin 是这样的iterator begin() { return (link_type)((*node).next); }我想知道 编译器自动对于 like_type 进行转化了吗。 iterator 是一个类,link_type只是类里面一个成员变量,怎么直接就能把返回值的link_type 转化为 iterat原创 2013-09-23 19:52:04 · 1010 阅读 · 0 评论