码迷,mamicode.com
首页 > 其他好文 > 详细

Note_chapter2

时间:2015-04-09 15:23:10      阅读:151      评论:0      收藏:0      [点我收藏+]

标签:

No 1.书中提到的四本经典书籍

the C++ standard library //本书

the art of computer programming//一套算法经典书籍,太厚太贵,没读过

algorithms in c//依旧很经典的算法书,几年前读过一遍

effective C++//没读过,会买的

exceptional C++ //买了只读了一丢丢,感觉好浪费

No 2.新的语言特性

1.template

1.1.typename,class,struct

技术分享
 1 模板函数
 2 template <typename T>
 3 inline const T& max(const T& a, const T& b)
 4 {
 5     return a < b ? b : a;
 6 }
 7 template <class T>
 8 inline const T& max(const T& a, const T& b)
 9 {
10     return a < b ? b : a;
11 }
12 
13 模板类
14 template <typename T> class MyData;
15 template <class T> class MyData;
16 template <typename T> struct MyData;
17 template <class T> struct MyData;
18 //前面的class不能替代为struct
19 
20  类型名指示符
21 struct bb
22 {
23     typedef int bar;
24 }; 
25 template <typename T>
26 void foo(const T& t)
27 {
28     typename T::bar * p;
29 }
30 bb x;
31 foo(x);
template

1.2.type可以作为template参数,nontype也可以作为template参数,非类型参数因而可以看做整个template型别的一部分,如bitset<32> flags32;

1.3.default template parametes,缺省参数与函数构造函数类似,template<class T, class bb = vector<T> > class MyData;

1.4.member template,个人理解不深,感觉就是类中类,类中函数的转变类中模板类,类中模板函数

2.explicit initialization,class T; T a = T();

3.exception handing,exception handling != error handling,主要还是try,throw,catch

技术分享
 1 class error;
 2 int main(int argc, char* argv[])
 3 {
 4     try
 5     {
 6         if(exception-condition)
 7             throw error();
 8     }
 9     catch (const error&)
10     {
11         handle exception;
12     } 
13     return 0; 
14 }
exception

4.namespace,using namespace std; using std::cout;不建议使用前者

5.bool,不同编译器,true得值不一样,通常true,-1,但为非零数,而false,为零

6.explicit,个人不熟,可以阻止不应该允许的经过转换构造函数进行的隐式转换的发生

7.type conversion operators,static_cast,dynamic_cast,const_cast,reinterpret_cast,最后一个没用过,const_cast除了可以去除const还有volatile

8.constant static member

技术分享
 1 #include <iostream>
 2 class fdf
 3 {
 4 public:
 5     static const int num = 100;
 6 };
 7 const int fdf::num;
 8 int main(int argc, char* argv[])
 9 {
10     fdf sd;
11     std::cout << sd.num;
12     while (std::cin){}
13 }
static members

9.main(),int main(int argc, char* argv[]),参数为命令行参数数组,返回值返回给操作系统

No3.复杂度和Big-O表示法

 复杂度包括时间复杂度和空间复杂度,时间复杂度就是运算处理的时间数量级,空间复杂度就是内存占用数量级,通常都是优先考虑时间复杂度,递归除外

技术分享

No.End 20150408

Note_chapter2

标签:

原文地址:http://www.cnblogs.com/wfxx/p/4402832.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!