c++primer学习笔记
陈卓为
好好学习,天天向上
展开
-
c++primer5e学习笔记,第三章
3.1,用using声明后,就不需专门的前缀了。如:using std::cin; using std::cout;usign std::endl;等3.2,1,string定义于命名空间std中。所以使用时应包含: #include using std::string 字符串字面值于string类型不同。2,拷贝初始化(=) 直接初始化(()原创 2016-02-06 13:37:17 · 535 阅读 · 0 评论 -
第十一章关联容器
11.1,使用关联容器ex2???ex3,4string strip(string &str) { for (auto &ch : str) ch = tolower(ch); str.erase(remove_if(str.begin(), str.end(), ispunct), str.end()); return str;}map<string, int> cou原创 2017-10-04 23:29:09 · 186 阅读 · 0 评论 -
13章,拷贝控制
13.1,拷贝、赋值与销毁13.1A1:1,拷贝构造函数的定义: 一个构造函数的第一个参数是自身类型的引用,且任何额外参数都有默认值。2,出现场合: 用“=”定义变量, 将一个对象作为实参传递给一个非引用类型的形参, 从一个返回类型为非引用类型的函数返回一个对象, 花括号{} 初始化 A2 : 拷贝构造函数自己的参数必须是引用类型。 因为如果不是的话,在调原创 2017-09-27 17:48:47 · 204 阅读 · 0 评论 -
C++ revisit
1,引用不能重新绑定,且引用不是对象,所以没有指向引用的指针int a=1,b=2;int &c = a;int &c = b;//wrongint a=1;int &b = a;int &*c = &b;//error: cannot declare pointer to 'int&'|2,不能通过const 引用改变引用对象的值,但如果引用对象的值改变,const 引用的值也改变。int原创 2017-07-06 16:27:16 · 174 阅读 · 0 评论 -
C++ revisit
1,引用不能重新绑定,且引用不是对象,所以没有指向引用的指针int a=1,b=2;int &c = a;int &c = b;//wrongint a=1;int &b = a;int &*c = &b;//error: cannot declare pointer to 'int&'|2,不能通过const 引用改变引用对象的值,但如果引用对象的值改变,const 引用原创 2017-07-06 16:22:30 · 301 阅读 · 0 评论 -
第四章表达式
4.1当一个对象被用做右值的时候,用的是对象的值(内容);用做左值的时候,用的是对象的身份(在内存中的位置)(??)4.3char *p="hello";cout<<*p;输出 h 而不是hello4.5除非必须,否则不用++,--的后置版本,原创 2016-02-09 11:14:07 · 300 阅读 · 0 评论 -
第三章字符串,向量,数组
3.3范围for循环体内不应该代表序列的大小(for(auto ...))3.5数组的维度必须是一个常量表达式int a=10;int b[a];//错误复杂数组声明:int arr[10];int (*par)[10]=&arr;//指向一个含有十个指针的数组int (&par)[10]=arr;//引用arr数组3.6用类原创 2016-03-12 10:03:41 · 218 阅读 · 0 评论 -
第14章重载运算与类型转换
14.61,前置递减,递加的重载返回的是引用类,后置返回对象的原值而不是引用原创 2016-02-25 09:35:43 · 271 阅读 · 0 评论 -
第七章
7.1 不能在一个常量对象上调用普通函数当定义的函数类似与内置运算符时,应该使其返回引用类型。原创 2016-02-10 11:51:10 · 246 阅读 · 0 评论 -
第六章函数
6.31,返回数组类型int (*fun()) [10];或using artT=int [10]; artT* func(int i);返回数组的引用并且该数组包含10个string对象:string (&func(string (&arrStr)[10]))[10]using ArrT = string[10];ArrT& func1(ArrT& ar原创 2016-02-10 10:53:03 · 356 阅读 · 0 评论 -
第二章变量和基本类型
2.1执行浮点数用double 而不用float.两者开销差不多。当算术表达式既有无符号数又有int型,将Int改为unsigned unsigned u=10;int i=-42;cout字符串字面值比实际长度多1.定义在一个函数体(包括main)内部的内置类型将不被初始化(string 不是内置类型)函数之外被初始化为0原创 2016-03-02 23:16:51 · 234 阅读 · 0 评论 -
第十二章内存管理
12.1return p(p为share_ptr类型)返回时,引用计数加1.默认初始化:new int;指向值未定义值初始化:new int(); 指向值为0原创 2016-02-16 11:28:14 · 313 阅读 · 0 评论 -
第十章泛型算法
10.2 只接受一个单一迭代器来表示第二个序列的算法,都假定第二个序列比第二个长10.3 stable_sort必须处理有序序列。原创 2016-02-13 10:09:33 · 253 阅读 · 0 评论 -
第九章
9.2 <等不能用于list比较迭代器位置,只能用!=9.3 forward_list不支持push _back操作但list支持, forward_list,list没有迭代器位置的重载如iter1-iter2中-没有重载两个迭代器,iter+2中+也没有重载容器中如:back,front等返回的都是引用,即可以做左值,如果容器是常量则返回常量引用9.5 char a[]={‘h’,’i’原创 2016-02-12 19:21:32 · 273 阅读 · 0 评论 -
11章,关联容器
11.2,关联容器概述11.2.2关键字类型的要求用来阻止一个容器中元素的操作的类型也是容器类型的一部分:bool compareIsbn(const Sales_data &lhs,const Sales_data &rhs){ return lhs.isbn()<rhs.isbn;}multiset<Sales_data,decltype(compareIsbn)*>bookstor原创 2017-10-05 08:41:07 · 209 阅读 · 0 评论