- 博客(5)
- 收藏
- 关注
原创 STL源码分析之Vector
地球人都知道vector的查找效率很高, 插入和删除的效率地下, 容器会随着元素的不断增加自动增长, 最近在看了STL源码之后, 发现确实是这样, 下面是vector一些关键的函数. 从这些函数可以看出插入和删除的过程, 以及容器自动增长的方式.// 两个通过下标获取元素的函数.reference operator[](size_type __n) { return *(begin() + __n); }const_reference operator[](size_type __n) const { re
2011-04-02 00:08:00 1229
原创 模版特化
<br />最近在看STL源代码时候发现很多东西值得学习, 需要不断消化, 应用在平时项目中, 一个简单的模版萃取方法, 在STL里面应用也很广.<br /> <br />#include <iostream><br />using namespace std;<br />template <class T><br />struct Traits<br />{<br /> typedef T type_name;<br />};<br />template <class T> struct Traits<
2011-03-30 22:34:00 256
原创 函数对象和模版实现责任链模式
<br />最近闲着没事, 整理原来代码时候发现用函数对象加上模版实现责任链模式的方法很值得温习, 重新理了一下, 整个过程如下:<br /> <br />测试结果:<br />[jackhuang@bogon chain]$ ./test <br />[main.cc:main:79] INFO: Test begin!<br />[chain.cc:registerNewHandler:18] INFO: handler = TestClass1 successfully added, register
2011-03-28 23:03:00 388
原创 对象虚函数的获取方法
#include #include using namespace std;class TestClass{public: virtual void print1() { cout } virtual void print2() { cout } void print3() { cout }};typedef void (*FUNC) ();int main(int argc __attribute__((unused)), char *argv[] __attr
2011-03-27 22:42:00 348
原创 strtok与strtok_r源码
strtok与strtok_r是字符串操作经常会用到的两个函数. 下面是它们的源码. 但是这两个函数都有个缺点, 如果字符串为Test1:Test2::Test3:::Test4:::: 则用::作为分割符号仍然能得到Test1 Test2 Test3 Test4四个字符串. 另外由于传入的第一个参数会被修改('/0'), 故使用前需要拷贝原来字符串以备份.char * strtok(char *string, const char * ctrl){ assert(ctrl != NULL); char
2011-03-26 00:51:00 2121 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人