![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Primer c++
Primer c++ 笔记
vbs16
这个作者很懒,什么都没留下…
展开
-
C++笔记 1:开始
Primer C++笔记开始cin:一个istream对象,用来从标准输入读取数据cout:一个ostream对象,用于将数据写入标准输出.通常用于程序的正常输出内容.clog:一个ostream对象,关联到标准错误.默认情况下,写到clog的数据是被缓冲的.clog通常用于报告程序的执行信息,存入一个日志文件.Cerr:一个ostream对象,关联到标准错误,通常写入到与标准输出相同的设备.默认情况下,写到cerr的数据是不缓冲的.cerr通常用于输出错误信息或其他不属于程序正常逻辑的输原创 2020-11-30 21:02:34 · 58 阅读 · 0 评论 -
C++笔记 2.4 const限定符
Primer C++笔记const限定符有时候我们希望定义这样一种变量,它的值不能被改变。特点:const对象一旦创建后其值就不能再改变,所以const对象必须初始化。const特征仅仅在改变const变量的操作的才会发挥作用。初始值可以是任意复杂的表达式:默认情况下,const对象仅在文件内有效。对于const变量不管是声明还是定义都添加extern关键字就可以在一个文件中定义const,而在其他多个文件中声明它。可以把引用绑定到const对象上,就像绑定到其他对象上一样,我们称原创 2020-06-30 00:22:11 · 241 阅读 · 0 评论 -
C++笔记 2.3 复合类型
Primer c++笔记复合类型一条声明语句由一个**基本数据类型(basetype)和紧随其后的一个声明符(declarator)**列表组成,每个声明符命名了一个变量并制定该变量为与基本数据类型有关的某种类型.。声明符其实就是变量名。引用(reference)为对象起了另外一个名字特点:2. 一旦初始化完成,引用将和它的初始值对象一直绑定在一起,无法重新绑定。3. 引用并非对象,只是已经存在对象所起的别名。(因为引用本身不是一个对象,所以不能定义引用的引用)。4. 引用只能绑原创 2020-06-30 00:00:00 · 286 阅读 · 0 评论 -
C++笔记 2.1 基本内置类型
Primer C++笔记基本内置类型算数类型算数类型分为两种:整型(integral type, 包括字符和布尔类型在内)和浮点型。字符类型浮点型如何选择类型原创 2020-07-01 00:25:53 · 115 阅读 · 0 评论 -
C++笔记 2.2 变量
primer c++笔记变量变量定义首先是类型说明符随后紧跟由一个或多个变量名组成的列表,其中变量名以逗号分隔,最后以分号结束。列表初始化int units_sold = 0;int units_sold = {0};int units_sold {0};int units_sold (0);花括号来初始化变量,这种初始化的形式被称为列表初始化特点:如果当我们使用列表初始化切初始值存在丢失信息的风险,则编译器将报错;默认初始化变量声明和定义的关系—标识符..原创 2020-07-01 22:23:38 · 150 阅读 · 1 评论 -
C++笔记 2.5 处理类型
Primer C++笔记处理类型类型别名指针、常量和类型别名auto类型说明符复合类型、常量和autoauto会忽略掉顶层const,同时底层const则会保留下来decltype类型指示说明符decltype和引用decltype((variable)) 会得到引用类型int a = 3, b = 4;decltype((a = b)) 会得到引用类型...原创 2020-07-01 23:03:01 · 141 阅读 · 0 评论 -
C++笔记 3.2 标准库类型string
primer C++笔记标准库类型string直接初始化和拷贝初始化原创 2020-07-03 20:40:07 · 1802 阅读 · 1 评论 -
C++笔记 3.3 标准库类型vector
primer C++笔记标准库类型vector标准库类型vector表示对象的集合,其中所有对象的类型都相同。c++语言既有类模板,也有函数模板,其中vector是一个类模板。定义和初始化vector对象列表初始值还是元素数量?...原创 2020-07-06 22:38:14 · 107 阅读 · 0 评论 -
C++笔记 3.4 迭代器介绍
primer C++笔记迭代器介绍string支持迭代器迭代器距离使用迭代器运算 //text必须是有序的 //beg和end表示我们搜索的范围 vector<int> text = { 1,2,3,4,5,6 }; int sought = 2; auto beg = text.begin(), end = text.end(); auto mid = beg + (end - beg) / 2; while ((mid != end) && (*m原创 2020-07-07 22:42:00 · 85 阅读 · 0 评论 -
C++笔记 3.5 数组
primer C++笔记数组定义和初始化内置数组不允许拷贝和赋值理解复杂的数组声明默认情况下,类型修饰符从右向左依次绑定,对于ptrs理解比较简单:首先我们知道定义的是一个大小为10的数组,它的名字是ptrs,然后知道数组中存放的是指向int的指针。但是对于Parray来说,从右向左就不太合理了。因为数组的维度是紧跟着被声明的名字的,所以就数组而言,由内向外阅读就比从右向左好多了,*Parray意味着Parray是个指针,Parray是一个指针,它指向一个int数组,数组包含10个元素。原创 2020-07-08 23:08:19 · 142 阅读 · 0 评论 -
C++笔记 3.6 多维数组
primer C++笔记多维数组严格来说,C++语言中没有多维数组,通常所说的多维数组其实是数组的数组。二维数组作为函数参数,不能省略二维大小二维数组作为函数参数bai,实参可以直接使用二du维数组名,在被调用函数中zhi对形参数组定义可以指定所dao有维数的大小,也可以省略第一维的大小说明,如:void func(int a[3][4]);void func(int a[][4]);void f(int (*a)[4]);省略二维不合法void f(int a[][]);voi原创 2020-07-08 23:54:42 · 229 阅读 · 0 评论 -
C++笔记 4.1 表达式基础
primer C++笔记表达式基础对于含有多个运算符的复杂表达式来说,要想理解它的含义首先要理解运算符的优先级(precedence)、 结合律(associativity)以及运算对象的求值顺序(order of evaluation)运算对象转换左值和右值decltype 左值和右值求值顺序四种确定了求值顺序的运算符...原创 2020-07-09 21:11:57 · 75 阅读 · 0 评论 -
C++笔记 4.2 常用运算符
primer C++笔记算数运算符算数运算符的运算对象和求值结果都是右值。作用于指针商向0取整m%n匹配m的符号逻辑和关系运算符关系运算符关系运算符满足左结合律相等性测试赋值运算符vec进行了赋值而不是初始化赋值运算符满足右结合律int i,j;i = j = 0;赋值运算符优先级较低复合赋值运算符...原创 2020-07-10 22:04:26 · 180 阅读 · 0 评论 -
C++笔记 5 基本语句
primer C++笔记基本语句switch语句switch跨界bool ret = false; switch (ret) { case true: string file_name; //错误 file_name的初始化操作由case标签跳过 int ival = 0; //错误 ival的初始化操作由case标签跳过 int jval; //正确 break; case false: jval = 1; if (file_name.empty原创 2020-07-14 22:50:51 · 160 阅读 · 0 评论 -
C++笔记 6.1 函数
primer C++笔记函数基础调用函数原创 2020-07-17 21:11:39 · 136 阅读 · 1 评论 -
C++笔记 6.3 函数重载
primer C++笔记函数重载重载和const形参一个拥有const的形参无法和另一个没有顶层const的形参区分开来const_cast和重载原创 2020-07-21 22:27:00 · 75 阅读 · 0 评论 -
C++笔记 6.2 函数返回类型
primer C++笔记返回类型和return语句无返回值函数有返回值函数返回类类型的函数和调用运算符()调用运算符列表初始化返回值主函数main的返回值递归返回数组指针声明一个返回数组指针的函数使用尾置返回类型使用decltype...原创 2020-07-21 22:27:23 · 215 阅读 · 0 评论 -
C++笔记 6.4 函数匹配
primer C++笔记函数匹配确定候选函数和可行函数实参类型转换ps:类型提升 :整型提升,负责把校正数类型转换成较大的整数类型。函数匹配和const实参void test(int const*)//等价写法 void test(const int*);{ cout << "void test(int const*)" << endl;}void test(int *)//等价写法 void test(const int*);{ cout &l原创 2020-07-22 21:46:36 · 101 阅读 · 0 评论 -
C++笔记 6.5 函数指针
primer C++笔记函数指针返回指向函数的指针int myAdd(int a, int b){ return a + b;}typedef int addT(int, int);using addT = int(int, int);//别名addT* func(){ //等价写法 return &myAdd return myAdd;}//直接int (*func())(int,int)//decltype推导decltype(myAdd)* func(原创 2020-07-22 21:59:28 · 68 阅读 · 0 评论 -
C++笔记 7.1 定义抽象数据类型
primer C++笔记类 定义抽象数据类型combine和avg_price 声明在内部,实现在类外。定义类外的成员函数不是内联函数。引入const成员函数常量成员函数不能调用普通成员函数如果成员被声明称常量成员函数,那么他的定义也必须在参数列表后明确指定const属性定义类相关的非成员函数IO类属于不能被拷贝的类型,因此我们只能通过引用来传递他们。构造函数合成的默认构造函数某些类不能依赖于合成的默认构造函数构造函数 =default的含义...原创 2020-07-28 23:14:26 · 496 阅读 · 0 评论 -
C++笔记 7.2 访问控制与封装
primer C++笔记类 访问控制与封装友元原创 2020-07-28 23:21:35 · 79 阅读 · 0 评论 -
C++笔记 7.3 类的其他特性
primer C++笔记类的其他特性可变数据成员类数据成员的初始值从const成员函数返回*this基于const的重载类的声明友元再探友元不存在传递性令成员函数作为友元友元声明和作用域原创 2020-07-28 23:48:51 · 70 阅读 · 0 评论 -
C++笔记 7.4 类的作用域
primer C++笔记类的作用域返回类型与类作用域成员和函数体类型名要特殊处理成员定义中的普通块作用域的名字查找原创 2020-07-29 22:28:32 · 83 阅读 · 0 评论 -
C++笔记 7.5 构造函数再探
primer C++笔记构造函数再探构造函数初始值列表构造函数的初始值有时必不可少成员初始化的顺序委托构造函数默认构造函数的作用隐式的类类型转换只允许一步类类型转换抑制构造函数定义的隐式转换explicit构造函数只能用于直接初始化为转换显示的使用构造函数标准库含有显示构造的类聚合类字面值常量类除了算数类型、引用和指针外,某些类也是字面值类型。constexpr构造函数...原创 2020-07-29 22:56:01 · 92 阅读 · 0 评论 -
C++笔记 7.6 类的静态成员
primer C++笔记类的静态成员声明静态成员定义静态成员静态成员的类内初始化静态成员可以是不完全类型静态成员可以作为默认实参原创 2020-07-29 23:05:06 · 110 阅读 · 0 评论 -
C++笔记 8.1 IO类
primer C++笔记IO类支持宽字符IO类型间的关系IO对象无拷贝或赋值查询流的状态管理输出缓存导致缓存刷新(数据真正写到输出设备或文件)的原因有很多:unitbuf操纵符关联输入和输出流...原创 2020-07-30 21:57:36 · 62 阅读 · 0 评论 -
C++笔记 8.2 文件和字符串输入输出
primer C++笔记文件输入输出文件模式string流原创 2020-07-31 21:55:24 · 88 阅读 · 0 评论 -
C++笔记 9.1 顺序容器概述
primer C++笔记顺序容器概述使用容器的基本原则:迭代器forward_list迭代器不支持递减运算符(–),没有size();begin和end成员容器定义和初始化容器拷贝标准库array具有固定大小array支持拷贝赋值和swap不能讲花括号列表赋予数组,也不支持assignassign使用swap关系运算符...原创 2020-08-06 22:50:57 · 135 阅读 · 0 评论 -
C++笔记 9.2 顺序容器操作
primer C++笔记顺序容器操作vector头部插入元素插入范围内元素使用insert返回值emplace操作访问元素访问成员函数返回的是引用删除元素pop_front和pop_back改变容器大小resize容器操作可能使迭代器失效不要保存end返回的迭代器...原创 2020-08-07 23:02:26 · 92 阅读 · 0 评论 -
C++笔记 9.3 vector增长
primer C++笔记vector增长原创 2020-08-07 23:08:50 · 125 阅读 · 0 评论 -
C++笔记 9.4 额外的string操作
primer C++笔记额外的string操作修改string的操作搜索操作比较操作数值转换原创 2020-08-07 23:18:48 · 115 阅读 · 0 评论 -
C++笔记 9.5 容器适配器
primer C++笔记容器适配器原创 2020-08-09 19:51:04 · 72 阅读 · 0 评论 -
C++笔记 10.1 泛型算法概述
primer C++笔记泛型算法概述只读算法back_inserter*iter = 40 反复录入(push_back)消除重复单词使用unique原创 2020-08-10 20:18:42 · 96 阅读 · 0 评论 -
C++笔记 10.2 定制操作
primer C++笔记定制操作谓词lambda表达式可调用对象定义形式值捕获 :被捕获的变量的值是在lambda创建时拷贝,而不是调用时拷贝引用捕获隐式捕获可变lambda 在参数列表首加上关键字mutable 否则报错不能进行修改参数绑定bind 定义在functional头文件中使用placeholders的名字名字_n定义在名为placeholders的名字空间中,而这个命名空间本身定义在std命名空间中。placeholders命名空间定原创 2020-08-11 22:58:27 · 110 阅读 · 0 评论 -
C++笔记 10.3 再探迭代器
primer C++笔记再探迭代器插入迭代器iostream迭代器ostream_iterator反向迭代器原创 2020-08-12 21:25:35 · 67 阅读 · 1 评论 -
C++笔记 10.4 泛型算法结构
primer C++笔记泛型算法结构输入迭代器输出迭代器前向迭代器双向迭代器随机访问迭代器原创 2020-08-13 22:18:01 · 66 阅读 · 0 评论 -
C++笔记 10.5 特定容器算法
primer C++笔记特定容器算法splice原创 2020-08-13 22:21:47 · 73 阅读 · 0 评论 -
C++笔记 11. 1 关联容器概述
primer C++笔记关联容器概述关键字类型的要求pair类型定义在头文件utility中原创 2020-08-14 22:34:30 · 87 阅读 · 0 评论 -
C++笔记 11.2 关联容器操作
primer C++笔记关联容器操作关联容器迭代器关联容器和算法添加元素insert不会覆盖元素,[]会覆盖元素insert返回值*iter++ 等价于 *(iter++)map的下标操作使用下表操作的返回值访问元素在multimap 或 multiset中查找元素面向迭代器的解决方法equal_range函数...原创 2020-08-17 22:07:45 · 103 阅读 · 0 评论 -
C++笔记 11.4 无序容器
primer C++笔记无序容器无序容器对关键字类型的要求小结原创 2020-08-18 21:55:46 · 81 阅读 · 0 评论