【《C++ Primer 5》康奈尔笔记】
文章平均质量分 79
刘建杰
像我这么优秀的人,
本该当个公务员。
怎么二十多年到头来,
还在招聘会沉沦。
像我这样迷茫的人,
像我这样牛马的人,
像我这样打工度年的人,
你还见过多少人。
展开
-
《C++ Primer 第5版》-14.3~14.7算术和关系、赋值、下标、递增和递减、成员访问运算符-康奈尔笔记
14.3.1相等运算符 算术和关系运算符 相等运算符 Operator +(const Sales_data&s1,const Sales_data &s2); Bool operator==(const Sales_dat&s1,const Sales_da&s2); Bool operator!=(const Sales_dat&s1,const Sales_da&s2);原创 2022-03-05 08:14:35 · 268 阅读 · 0 评论 -
《C++ Primer 第5版》-14.2输入和输出运算符-康奈尔笔记
14.2.1重载输出运算符 输入和输出运算符 重载输出运算符<< 输出运算符尽量减少格式化操作 输入输出运算符必须是非成员函数 Ostream& operator<<(ostream&os, const Sales_data &item); Sales_data data; Data<<cout;// 若是成员 1. 输入和输出运算符原创 2022-01-18 21:19:48 · 298 阅读 · 0 评论 -
《C++ Primer 第5版》-14.1重载运算基本概念-康奈尔笔记
基本概念 直接调用一个重载的运算符函数 某些运算符不应该被重载 使用与内置类型一致的含义 赋值和复合赋值运算符 选择为成员或者非成员 Cout<<item1+item2 Data1+data2; operator+(data1,data2);//非成员函数 data1.operator(data2);//成员函数 string t=s+”!”;s需定义运算符+,第一个参数是string ...原创 2022-01-18 21:16:06 · 371 阅读 · 0 评论 -
《C++ Primer 第5版》-13.6对象移动-康奈尔笔记
13.6.1右值引用 对象移动 右值引用 左值持久:右值短暂 变量是左值 标准库move函数 Int I = 42; Int &&rr = I;// 不能绑定到左值上 Int &&rr = I * 42;//正确 Const int &r3 = i*42;//const的引用可以绑定到右值上 Int &&r1 = 42; Int &原创 2022-01-08 11:31:12 · 2400 阅读 · 0 评论 -
《C++ Primer 第5版》-13.3交换操作-康奈尔笔记
交换操作 编写我们自己的swap函数 Swap函数应该调用swap,而不是std::swap 在赋值运算符中使用swap HasPtr temp = v1; V1 = v2; V2 = temp; String *temp = v1.ps; V1.ps = v2.ps; V2.ps = temp; Class HasPtr{ Friend void swap(HasPtr...原创 2022-01-05 10:54:29 · 619 阅读 · 0 评论 -
《C++ Primer 第5版》-13.2拷贝控制和资源管理-康奈尔笔记
13.2.0拷贝控制和资源管理管理类外的资源的类必须定义拷贝控制成员。需要确定此类型对象的拷贝语义,有让类看起来像一个值或者一个指针类的行为像一个值,意味着它应该也有自己的状态。拷贝一个像值的对象时,副本和原对象是完全独立的。改变副本不会对原对象有任何影响 类的行为像指针,拷贝一个这种类的对象时,副本和原对象使用相同的底层数据。改变副本也会改变原对象如:string类的行为像一个值Shared_ptr类的行为像一个指针IO类型和unique_ptr不允许拷贝或赋值,他们的行为既不像值原创 2022-01-04 12:03:34 · 322 阅读 · 0 评论 -
《C++ Primer 第5版》-13.1拷贝、赋值与销毁-康奈尔笔记
13.1.1拷贝构造函数 拷贝、赋值与销毁 拷贝构造函数 合成拷贝构造函数 拷贝初始化 参数和返回值 拷贝初始化的限制 编译器可以绕过拷贝构造函数 拷贝构造函数、拷贝赋值运算符、移动构造函数、移动赋值运算符 析构函数。拷贝控制操作 合成拷贝构造函数 拷贝初始化 Explicit Foo(const Foo&); String dot(10,’.’))//直接初始化 Stri原创 2021-12-31 16:39:32 · 605 阅读 · 0 评论 -
《C++ Primer 第5版》-12.2动态数组-康奈尔笔记
12.2.1new和数组 动态数组 New和数组 分配一个数组会得到一个元素类型的指针 初始化状态分配对象的数组 动态分配一个空数组是合法的 释放动态数组 只能指针和动态数组 Int *pia = new int[get_size()]; Typedef int art[42]; Int *p = new art; Int *Pia = new int[10]; Int *pia2=new int原创 2021-12-31 07:00:00 · 511 阅读 · 0 评论 -
《C++ Primer 第5版》-12.1动态内存与智能指针-康奈尔笔记
12.1.1shared_ptr类 动态内存 动态内存与智能指针 Shared_ptr类 Make_shared函数 Shared_ptr的拷贝和赋值 Shared_ptr自动销毁所管理的对象 Shared_ptr还会自动释放相关联的内存 使用了动态生存期的资源的类 定义StrBlob类 StrBlob构造函数 元素访问成员函数 StrBlob的拷贝、赋值和销毁 自由空间 堆.原创 2021-12-30 17:13:17 · 460 阅读 · 0 评论 -
《C++ Primer 第5版》-11.4无序容器-康奈尔笔记
无序容器 使用无序容器 管理桶 无序关联容器 哈希函数和关键字类型==运算符 Hash模板 1. 无序容器 1)4个无序关联容器,不是使用比较运算符来组织元素,而是一个哈希函数和关键字类型==运算符。 2)有时候很有用,因为维护元素的序代价高 Note:如果关键字类型固有就是无序的,或者性能测试发现问题可以用哈希计数解决,就可以使用无序容器 2. 使用无序容器 1)定义...原创 2021-12-30 16:48:37 · 185 阅读 · 0 评论 -
《C++ Primer 第5版》-11.3关联容器操作-康奈尔笔记
引入:2018年10月看《C++ Primer 第5版》而写的简单笔记11.3.1关联容器迭代器 关联容器操作 关联容器迭代器 Set的迭代器是const的 遍历关联容器 关联容器和算法 Set:key_type value_type Map: key_type value_type mapped_type set<string>::key_type v1; set<string>::..原创 2021-12-27 08:41:46 · 374 阅读 · 0 评论 -
《C++ Primer 第5版》-11.2关联容器概述-康奈尔笔记
引入:2018年10月看《C++ Primer 第5版》而写的简单笔记11.2.1定义关联容器 关联容器概述 定义关联容器 初始化multimap或multiset map<string, size_t> map1; set<string> set1 = { "the","but","an" }; map<string, string> authors = { {"1","11"}, ...原创 2021-12-25 16:45:32 · 604 阅读 · 0 评论 -
《C++ Primer 第5版》-11.1使用关联容器-康奈尔笔记
使用关联容器 使用map 使用set Map set 关联容器 Map头文件 Set头文件 Multimap头文件 Multiset头文件 Unordered_map/set map<string, int> word_count2; set<string> word_not{"the","then","but","or","an","a"}; if(word.fin...原创 2021-12-25 16:30:47 · 713 阅读 · 0 评论