发信人: yangguo981 (神雕侠侣), 信区: CS
标 题: C++学习的一点儿建议
发信站: 华南木棉BBS (Sat Jun 23 20:40:51 2007), 转信
以下都是我个人学习感想不一定对,推荐的书也不保证是好书……
贴上来的主要目的是为了引出玉……
大家随便看看就好了。
大致可以按照以下顺序学……
基本语法的熟悉、stl的了解、类概念、stl的使用、性能、底层实现、template
1:熟悉语法
钱能的那本书可以。讲的简单明了,主要的概念也都基本上涵盖到了,缺点是没有提到stl
。边读边做后面的习题,读完之后应该可以编写一些小程序,计算某日某月星期几、打印
平行四边形之类的。这本书计算机是不是人手一本了,
呵呵。
2:stl的了解
stl是标准C++支持的库,提供了容器、迭代器、算法等等。
了解如何使用这些东西,容器有数组的vector、集合的set、智能指针、栈和队列的stack跟
queue等等;了解如何使用迭代器来访问容器的元素
;了解stl提供的算法如sort、accumulate、make_heap等等的使用
thinking in C++ volumn 2说到了不少~,后面的习题选做部分就ok了,有一些比较麻烦~
有一本绿色封面的C++函数库手册可以拿来查询,里面列出了stl的容器、算法的使用方法,
还包括了math.h,stdlib.h等库函数的介绍,不会的时候查一下很方便的~
函数库手册可以几个人去买一本合用,反正也就是当字典查,thinking in C++图书馆有的
借,借不到中文就借英文的好了~不难读
3:类概念
就是class,这部分其实跟软件工程面向对象设计的关系更加接近,只不过是通过C++来表现
。
需要了解类的构造、析构、拷贝构造、赋值符等等,明白C++对象创建的方式,类的继承、
虚函数之类的乱七八糟的东西。
effective and more effective c++、think in c++ volumn 2也都讲到了不少,同时对1、
2也有很多很好玩的东西可以补充~
明白C++是如何描述面向对象思想的。
看设计模式,看不懂的话,可以先读designed patterns explained,讲的要相对容易理解
一点,然后回头再读。
个人感觉C++这部分的语法有点难懂,花多点时间熟悉吧,多多实践一下最好了,呵呵。
同时也会了解对象构造的性能问题。
ec & mec网上中文英文都有,各种格式的都有,挑一个自己喜欢的排版看吧,图书馆也有的
,中文没了就借英文吧,呵呵。
设计模式网上好像只有一个pdf版本的,看起来好累,图书馆有英文的可以借。中文版自己
买一个也可以,薄薄的也不贵,翻译似乎也挺好的。
designed patterns explained英文版图书馆有借,网上有电子版。
4:stl的使用
第二步是对stl的了解,这一步主要明白各个容器可以提供怎样的性能。同时也要注意对st
l的使用。举个简单例子:
不会再写出
vector<int> vi;
for(int i=0; i<99999; ++i) vi.push_back(i)这样的的语句,取而代之的是
vector<int> vi;
vi.reserve(99999)
for(int i=0; i<99999; ++i) vi.push_back(i)
对各个容器的具体实现有所了解,比如stack采用了deque做为底层容器、deque跟vector的
区别、set可以保证提供lgN的存取时间等等。
对stl具体实现,可以看候捷的stl源码剖析
而Effective STL这本书则着重于如何更好的使用stl
同时
effective and more effective c++
think in c++ volumn 2两本书中不少地方也会有这些内容。
stl源码剖析网上只有一部分,好恶心,要看的话只好去买了,sigh。
Effective STL中文英文版网上都可以找到。
5:性能
C++或许是以性能著称的吧?如何在无法改进算法逻辑的情况下,写出时空性能尽可能好的
程序?
看这本:Efficient C++ Performance Programming Techniques,对构造析构、虚函数、临
时对象、引用计数等等都有介绍~
这本书似乎记得在图书馆二楼的隔间里有英文版借(不保证有,或许我眼花了……),网上
有pdf可以搜到。
6:底层实现
主要是知道编译器对你的代码做了什么手脚,以及C++是如何在内存中安排你的数据的。
看这本书:Inside the C++ Object Model(深度探索C++对象模型),看候捷翻译的吧,呵
呵。网上中英文完整版都有~
7:template
这个跟泛型编程联系的比较紧密,stl本身就是一个完美的泛型编程的例子。
可以了解到原来template除了用来生成模板函数、模板类之外,还跟面向对象程序设计有很
大的关联。
同时也可以对meta programming有一些了解。
C++ Templates-The Complete Guide:C++ templates的经典,前半部分说语法,后半部分
说设计。
这本书没看完……看了半天看不懂放弃了555。
英文版网上有
最后推荐一个
C++ Gotchas-Avoiding Common Problems in Coding and Design,(C++陷阱),对一些常
见、不常见的程序设计陷阱做了一些介绍。挺不错
的书,分成了99个小“故事”,看起来也不累~
图书馆有英文版~网上也有chm格式的~
--
※ 来源:. 华南木棉BBS bbs.gznet.edu.cn. [FROM: 202.38.215.7]
※ 修改:.yangguo981 于 Jun 23 20:44:52 修改本文.[FROM: 202.38.215.7]
标 题: C++学习的一点儿建议
发信站: 华南木棉BBS (Sat Jun 23 20:40:51 2007), 转信
以下都是我个人学习感想不一定对,推荐的书也不保证是好书……
贴上来的主要目的是为了引出玉……
大家随便看看就好了。
大致可以按照以下顺序学……
基本语法的熟悉、stl的了解、类概念、stl的使用、性能、底层实现、template
1:熟悉语法
钱能的那本书可以。讲的简单明了,主要的概念也都基本上涵盖到了,缺点是没有提到stl
。边读边做后面的习题,读完之后应该可以编写一些小程序,计算某日某月星期几、打印
平行四边形之类的。这本书计算机是不是人手一本了,
呵呵。
2:stl的了解
stl是标准C++支持的库,提供了容器、迭代器、算法等等。
了解如何使用这些东西,容器有数组的vector、集合的set、智能指针、栈和队列的stack跟
queue等等;了解如何使用迭代器来访问容器的元素
;了解stl提供的算法如sort、accumulate、make_heap等等的使用
thinking in C++ volumn 2说到了不少~,后面的习题选做部分就ok了,有一些比较麻烦~
有一本绿色封面的C++函数库手册可以拿来查询,里面列出了stl的容器、算法的使用方法,
还包括了math.h,stdlib.h等库函数的介绍,不会的时候查一下很方便的~
函数库手册可以几个人去买一本合用,反正也就是当字典查,thinking in C++图书馆有的
借,借不到中文就借英文的好了~不难读
3:类概念
就是class,这部分其实跟软件工程面向对象设计的关系更加接近,只不过是通过C++来表现
。
需要了解类的构造、析构、拷贝构造、赋值符等等,明白C++对象创建的方式,类的继承、
虚函数之类的乱七八糟的东西。
effective and more effective c++、think in c++ volumn 2也都讲到了不少,同时对1、
2也有很多很好玩的东西可以补充~
明白C++是如何描述面向对象思想的。
看设计模式,看不懂的话,可以先读designed patterns explained,讲的要相对容易理解
一点,然后回头再读。
个人感觉C++这部分的语法有点难懂,花多点时间熟悉吧,多多实践一下最好了,呵呵。
同时也会了解对象构造的性能问题。
ec & mec网上中文英文都有,各种格式的都有,挑一个自己喜欢的排版看吧,图书馆也有的
,中文没了就借英文吧,呵呵。
设计模式网上好像只有一个pdf版本的,看起来好累,图书馆有英文的可以借。中文版自己
买一个也可以,薄薄的也不贵,翻译似乎也挺好的。
designed patterns explained英文版图书馆有借,网上有电子版。
4:stl的使用
第二步是对stl的了解,这一步主要明白各个容器可以提供怎样的性能。同时也要注意对st
l的使用。举个简单例子:
不会再写出
vector<int> vi;
for(int i=0; i<99999; ++i) vi.push_back(i)这样的的语句,取而代之的是
vector<int> vi;
vi.reserve(99999)
for(int i=0; i<99999; ++i) vi.push_back(i)
对各个容器的具体实现有所了解,比如stack采用了deque做为底层容器、deque跟vector的
区别、set可以保证提供lgN的存取时间等等。
对stl具体实现,可以看候捷的stl源码剖析
而Effective STL这本书则着重于如何更好的使用stl
同时
effective and more effective c++
think in c++ volumn 2两本书中不少地方也会有这些内容。
stl源码剖析网上只有一部分,好恶心,要看的话只好去买了,sigh。
Effective STL中文英文版网上都可以找到。
5:性能
C++或许是以性能著称的吧?如何在无法改进算法逻辑的情况下,写出时空性能尽可能好的
程序?
看这本:Efficient C++ Performance Programming Techniques,对构造析构、虚函数、临
时对象、引用计数等等都有介绍~
这本书似乎记得在图书馆二楼的隔间里有英文版借(不保证有,或许我眼花了……),网上
有pdf可以搜到。
6:底层实现
主要是知道编译器对你的代码做了什么手脚,以及C++是如何在内存中安排你的数据的。
看这本书:Inside the C++ Object Model(深度探索C++对象模型),看候捷翻译的吧,呵
呵。网上中英文完整版都有~
7:template
这个跟泛型编程联系的比较紧密,stl本身就是一个完美的泛型编程的例子。
可以了解到原来template除了用来生成模板函数、模板类之外,还跟面向对象程序设计有很
大的关联。
同时也可以对meta programming有一些了解。
C++ Templates-The Complete Guide:C++ templates的经典,前半部分说语法,后半部分
说设计。
这本书没看完……看了半天看不懂放弃了555。
英文版网上有
最后推荐一个
C++ Gotchas-Avoiding Common Problems in Coding and Design,(C++陷阱),对一些常
见、不常见的程序设计陷阱做了一些介绍。挺不错
的书,分成了99个小“故事”,看起来也不累~
图书馆有英文版~网上也有chm格式的~
--
※ 来源:. 华南木棉BBS bbs.gznet.edu.cn. [FROM: 202.38.215.7]
※ 修改:.yangguo981 于 Jun 23 20:44:52 修改本文.[FROM: 202.38.215.7]