Chinaunix首页 | 论坛 | 博客
  • 博客访问: 97183
  • 博文数量: 21
  • 博客积分: 145
  • 博客等级: 入伍新兵
  • 技术积分: 250
  • 用 户 组: 普通用户
  • 注册时间: 2012-12-22 17:37
文章分类

全部博文(21)

文章存档

2013年(16)

2012年(5)

我的朋友

发布时间:2013-04-08 23:14:11

尝试总结一下const关键词在C++中的用法,不一定全面和正确,希望大家拍砖,共同进步。1、替换#define用const可以在编译阶段进行type检查,避免不必要的错误点击(此处)折叠或打开const int size = 100; //编译器可能会把size放在symbol table里面,而不分配变量内存int arra.........【阅读全文】

阅读(384) | 评论(0) | 转发(0)

发布时间:2012-12-31 13:57:56

chapter8:二叉查找树chapter9:AVL树这两个就一起看了。因为AVL树是二叉查找树的一个升级版本,所以我就选择直接实现AVL树的基本功能,主要是find、erase、insert。树节点: 点击(此处)折叠或打开struct Node { T item; int height; Node *parent; Node *left; Node *right; Node(): height(0), parent(NULL), left(NULL), right(NULL) {} Node(const T& x): item(x), height(0),p......【阅读全文】

阅读(525) | 评论(0) | 转发(0)

发布时间:2012-12-27 21:56:28

继续看这本书,chapter7主要内容queue和stack,这两个使用普通线性容器装饰完成的,在默认情况下,使用deque容器。这两个容器,接口相对较少,都是用deque改造过来的。具体内容也没什么好说,随便翻了翻,就直接看课后习题。有个用queue模拟洗车,还有一个是自动计算逻辑表达式。感觉实现逻辑表达式,比较有意思,就选择做这个。project描述输入一个逻辑表达式,e.g. a +b*(c+a) != 2/c + d要求输出false或者true。当然,像a, b, ...这种未定义的identifier,要主动提示用户输入:e.g. Please input value of a: ......【阅读全文】

阅读(1132) | 评论(0) | 转发(0)

发布时间:2012-12-26 14:18:11

chapter6这一章主要讲的是链表,基于list实现。deque、vector较list的主要优势是随机访问是常数级别的,但是频繁的随机位置插入,复杂度是线性的,同时,插入、删除会带来大面积的迭代器失效。list的主要优势是随机插入是常数的,但是要求传入插入位置,除了erase会使当前位置迭代器失效外,基本不失效。课后有两个pj,一个是行编辑器,另一个是实现一个简单的list。我选择了后一个,前一个感觉没什么意思。释放空间和申请空间,我用的是delete和new,偷懒了。list类定义: 点击(此处)折叠或打开template <class T>class list {prote......【阅读全文】

阅读(868) | 评论(0) | 转发(0)

发布时间:2012-12-24 21:10:21

大致浏览了一下chapter3和chapter4,直接到chapter5这一章简单介绍了一下vector和deque,以及他们各自的实现原理。vector和deque,主要特点是向后插入和随机访问是常数级别复杂度,deque比vector强悍的地方,就是在前端插入也是常数级别的,但是代价就是deque比vector要难实现。deque用一个辅助索引数组,实现两端插入都是常数,感觉还是巧妙的。vector貌似是只扩大空间,而deque还会回收空间。这两个顺序容器,对于随机位置的插入、删除,开销是线性级别,这个比list要差很多。#########################课后project......【阅读全文】

阅读(341) | 评论(0) | 转发(0)
给主人留下些什么吧!~~
留言热议
请登录后留言。

登录 注册