C++
文章平均质量分 76
无所知
Old student
展开
-
c++ primer 笔记第四章表达式
第四章 表达式梗概:本章讲解了各种各样的运算符和类型转换。4.1基础4.1.1基本概念一元运算符、二元运算符和三元运算符。运算符是几元由上下文决定。运算符有优先级结合律和运算对象的求值顺序。必要时会进行类型转换以及运算符的重载。重载只改变运算对象类型和返回类型。运算对象分为左值和右值。取地址符结果是右值,前置递加递减得到左值。decltype作用与表达式得到引用类型左值...原创 2018-08-03 16:19:01 · 151 阅读 · 0 评论 -
c++ primer 第十二章习题
练习12.1 都是4个练习12.2#ifndef MYSTRBLOB_H#define MYSTRBLOB_H#include <initializer_list>#include <memory>#include <stdexcept>#include <string>#include <vector>cla...原创 2018-09-03 16:03:57 · 1233 阅读 · 0 评论 -
c++ primer 笔记第十二章动态内存
第十二章:动态内存梗概:本章主要讲解使用C++智能指针动态管理内存以及直接管理动态内存的方法以及他们的结合。静态内存保存static变量以及定义在所有函数之外的变量。栈内存保存函数之内的非static变量,堆内存用来分配给程序动态产生的对象。静态内存和栈内存中的变量由编译器决定其生命周期。静态内存使用前分配,程序结束销毁。栈内存的变量在该程序块执行时存在。动态对象由程序控制声明周期,即需要...原创 2018-09-03 15:51:33 · 165 阅读 · 0 评论 -
c++ primer 笔记第十三章拷贝控制
13章 拷贝控制一个类定义五中特殊成员函数:拷贝构造函数、拷贝赋值运算符、移动构造函数、移动赋值运算符和析构函数。叫做拷贝控制操作。13.1 拷贝、赋值与销毁13.1.1 拷贝构造函数拷贝函数第一个参数是自身类型的引用,一般是常量引用,且额外参数都有默认值。拷贝函数通常不是explicit的。未定义拷贝构造函数时,编译器自动合成一个合成拷贝构造函数。操作是直接拷贝每个成员或...原创 2018-09-26 17:00:13 · 291 阅读 · 0 评论 -
c++ primer 第十三章习题
练习13.1 拷贝构造函数是参数为同类对象引用其它参数都有默认值的构造函数。使用其它对象初始化新对象时使用。练习13.2 应该使用引用参数,否则会陷入循环调用。练习13.3 拷贝其中的资源与值 拷贝其中的指针对象练习13.4 书上练习13.5 HasPtr(HasPtr& hp) { ps = new string(*hp.ps); i = hp.i;...原创 2018-09-26 19:19:39 · 1261 阅读 · 0 评论 -
c++ primer 第十四章重载运算与类型转换
c++ primer 第十四章重载运算与类型转换14.1 基本概念14.2 输入和输出运算符14.2.1 重载输出运算符<<14.2.2 重载输入运算符>>14.3 算术和关系运算符14.3.1 相等运算符14.3.2 关系运算符14.4 赋值运算符14.5 下标运算符14.6 递增和递减运算符14.7 成员访问运算符14.8 函数调用运算符14.8.1 lambda是函数...原创 2018-10-04 16:58:46 · 279 阅读 · 0 评论 -
c++ primer 第十四章习题
c++ primer 第十三章习题练习14.2ostream&amp;amp; operator&amp;lt;&amp;lt;(std::ostream&amp;amp; os, const Sales_data&amp;amp; item){ os &amp;lt;&amp;lt; item.isbn() &amp;lt;&amp;lt; &原创 2018-10-04 17:24:09 · 1445 阅读 · 0 评论 -
c++ primer 第十五章面向对象程序设计
c++ primer 第十五章面向对象程序设计15.1 OOP:概述15.2 定义基类和派生类15.2.1 定义基类15.2.2 定义派生类15.1 OOP:概述面向对象程序设计的核心思想是数据抽象、继承和动态绑定。使用数据抽象使类的接口与实现分离。使用继承定义相似的类型并对其相似关系建模。使用动态绑定一定程度上忽略相似类型的区别,以统一的方式使用它们的对象。继承将相似的类联系在一...原创 2018-10-14 16:32:49 · 265 阅读 · 0 评论 -
c++ primer 第十五章习题
c++ primer 第十五章习题练习15.3class Quote {public: Quote() = default; Quote(const string&amp;amp;amp; book, double sales_price): bookNo(book), price(sales_price) {} string isbn() const { return bookNo;} ...原创 2018-10-14 17:20:03 · 933 阅读 · 0 评论 -
c++ primer 第十六章模板与泛型编程
c++ primer 第十六章模板与泛型编程16.1 定义模板16.1.1 函数模板16.1.2 类模板16.1.3 模板参数16.1.4 成员模板16.1.5 控制实例化16.1.6 效率与灵活性16.2 模板实参推断16.2.1 类型转换与模板类型参数16.2.2 函数模板显示实参16.2.3 尾置返回类型与类型转换16.2.4 函数指针与实参推断16.2.5 模板实参推断和引用16.1 定...原创 2018-10-21 17:10:01 · 385 阅读 · 0 评论 -
c++ primer 第十六章习题
c++ primer 第十六章习题练习16.2#include &amp;lt;iostream&amp;gt;#include &amp;lt;string&amp;gt;#include &amp;lt;vector&amp;gt; #include &quot;Sales_data.cc&quot;using namespace std;原创 2018-10-21 20:35:34 · 458 阅读 · 0 评论 -
c++ primer 第十七章标准库特殊设施
c++ primer 第十七章标准库特殊设施17.1 tuple类型17.1.1 定义和初始化tuple17.2 bitset 类型17.2.1 定义和初始化bitset17.3 正则表达式17.3.1 使用正则表达式库17.3.2 匹配与Regex迭代器类型17.3.3 使用子表达式17.3.4 使用regex_replace17.4 随机数17.4.1 随机数引擎和分布17.4.2 其它随机数...原创 2018-10-26 19:53:38 · 266 阅读 · 0 评论 -
c++ primer 第十七章习题
c++ primer 第十七章习题练习17.10int main() { bitset&lt;32&gt; b1(0x0020212e); bitset&lt;32&gt; b2; b2.set(1,1); b2.set(2,1); b2.set(3,1); b2.set(5,1); b2.set(8,1); b2.set(13,...原创 2018-10-26 20:02:24 · 482 阅读 · 0 评论 -
c++ primer 第十八章用于大型程序的工具
c++ primer 第十八章用于大型程序的工具18.1 异常处理18.1.1 抛出异常18.1.2 捕获异常18.1.3 函数try语句块与构造函数18.1.4 noexcept异常说明18.1.5 异常类层次18.2 命名空间18.2.1 命名空间定义18.2.2 使用命名空间成员18.2.3 类、命名空间和作用域18.2.4 重载与命名空间18.3 多重继承与虚继承18.3.1 多重继承18...原创 2018-10-30 17:37:46 · 284 阅读 · 0 评论 -
c++ primer 第十八章习题
c++ primer 第十八章习题练习18.1 (a) range_error (b range_error 会抛出临时对象指针练习18.2 会销毁函数中创造的对象,其中指针p会导致内存泄漏练习18.3 可以把指针p使用智能指针或者封装成有析构函数的类练习18.4 调换顺序即可练习18.5 try {... }catch(exception e) { cout << ...原创 2018-10-30 20:19:37 · 830 阅读 · 0 评论 -
c++ primer 第十九章特殊工具与技术
c++ primer 第十九章特殊工具与技术19.1 控制内存分配19.1.1 重载new和delete19.1.2 定位new表达式19.2 运行时类型识别19.2.1 dynamic_cast 运算符19.2.2 typeid 运算符19.2.3 使用RTTI19.2.4 type_info类19.3 枚举类型19.4 类成员指针19.4.2 成员函数指针19.4.3 将成员函数用作可调用对象...原创 2018-11-03 14:55:51 · 385 阅读 · 1 评论 -
c++ primer 第十章习题
练习10.1int main() { vector<int> v = {1,1,2,3,3,4,4,4,4,5,5,5}; cout << count(v.begin(),v.end(),6)<<std::endl; cout << count(v.begin(), v.end(),1)<<std::endl...原创 2018-08-22 19:55:50 · 540 阅读 · 0 评论 -
c++ primer 笔记第九章顺序容器
第九章 顺序容器梗概:本章主要是在第三章的基础上继续介绍c++语言中的顺序容器。9.1 顺序容器概述顺序容器包括:vector 可变大小数组,支持快速随机访问。尾部之外添加元素很慢。 deque 双端队列。支持快速随机访问。在首尾插入删除很快。 list 双向链表。只支持双向顺序访问。插入删除很快。 forward_list 单向链表。只支持单向顺序访问。插入删除快。 ...原创 2018-08-21 16:57:31 · 308 阅读 · 0 评论 -
c++ primer 笔记第十一章关联容器
第十一章 关联容器梗概:本章主要介绍了两个关联容器map和set以及其延伸版本。关联容器支持高效关键字查找访问,主要包括map和set以及他们的无序版本以及multi版本共八种。 11.1 使用关联容器map类型的元素是一个pair,pair中包含一个key一个value,分别是first和second公有成员。支持下标操作。set类型是一堆关键字的集合,自动去重。 ...原创 2018-08-23 21:19:33 · 192 阅读 · 0 评论 -
c++ primer 笔记第一章开始
C++ primer 第五版第一章 开始梗概:第一章是全书的开始部分,用一个小的书店程序的例子讲解了C++ 程序的一些基础知识如程序的编写编译运行、输入输出流、注释、控制流和类的简介。1.1 编写一个简单C++程序 每个C++程序只有一个main函数,返回0代表正常结束,非0代表异常。 编译运行部分我直接使用visual studio。 练习1.1和1.2跳过。...原创 2018-07-31 14:48:21 · 253 阅读 · 0 评论 -
c++ primer 笔记第二章变量和基本类型(一)
第二章 变量和基本类型梗概:第二章讲解了C++语言里的一些基本的数据类型和变量等等,较为琐碎。2.1 基本内置类型算术类型包含整型和浮点型。整型包括整数,布尔和字符。各类型在不同机器上占的大小不一。带符号型和无符号型区间范围不同。无符号型无负数。练习2.1 int至少和short一样大,long至少和int一样大,long long至少和long一样大。无符号型没有符号位,只代...原创 2018-07-31 15:56:39 · 191 阅读 · 0 评论 -
c++ primer 笔记第二章变量和基本类型(二)
2.4 const限定符const定义的变量不能改变,因此const变量必须初始化。可以使用表达式初始化。默认状态下const对象仅在文件内有效。可以在声明和定义都加extern。练习2.26 (a) 不合法,未初始化 (b) 合法 (c) 合法 (d) 不合法,不能改变const的值。 2.4.1 const的引用引用绑定到常量上,成为对常量的引用,简称常量引用。...原创 2018-07-31 17:20:32 · 195 阅读 · 0 评论 -
c++ primer 笔记第七章类(一)
第七章 类梗概:这一章介绍了类的定义与概念,以及类的封装类的作用域以及重点讲解了构造函数。最后介绍了类的静态成员。类的基本思想时数据抽象和封装。数据抽象是指接口的设计与实现。封装是对类设计细节的隐藏,分离了接口的定义与使用。 7.1 定义抽象数据类型将一些数据进行抽象得到一种抽象的数据类型,有一些特定的组成和操作接口。7.1.1 设计Sales_data类对于类来说有两...原创 2018-08-10 15:43:34 · 182 阅读 · 0 评论 -
c++ primer 笔记第七章类(二)
7.4 类的作用域在类的作用域之外,普通成员可以使用对象、引用或指针访问,类类型可以用作用域运算符访问。在类的外部,成员名字被隐藏起来了。函数定义时遇到类名之后,定义的剩余部分就在类的作用域之内。函数的返回值类型一般在函数名之外,若使用类类型成员,则需要使用作用域运算符访问。 7.4.1 名字查找与类的作用域普通名字查找:一、在当前块名字使用之前寻找名字声明。二、未找到...原创 2018-08-10 16:49:52 · 152 阅读 · 0 评论 -
c++ primer 笔记第五章语句
第五章 语句梗概:本章介绍了C++语言中的一些语句的格式和几种特殊语句。5.1简单语句表达式加上分号即为表达式语句。单个分号是空语句。使用花括号括起来的叫一个复合语句,也叫块。空块等价于空语句。练习5.1 只有个分号的语句叫空语句。 逻辑需要实际不需要时。练习5.2 花括号括起来的叫块。使用多条语句时。 5.2 语句作用域if switch while 和for...原创 2018-08-06 16:33:05 · 200 阅读 · 0 评论 -
c++ primer 笔记第三章字符串、向量和数组(一)
第三章字符串、向量和数组梗概:本章先是提到了命名空间的使用,之后重点介绍STL里的vector和string两个部分。后面又讲解了迭代器的概念以及更底层的数组及多维数组的概念。3.1命名空间的using声明 使用别的文件中的变量或者函数需要预先声明,或者是使用::来表示。每次都加很麻烦,可以在文件开头使用using namespace::name;语句来声明一个变量或者函数。例如...原创 2018-08-01 20:44:46 · 173 阅读 · 0 评论 -
c++ primer 笔记第三章字符串、向量和数组(二)
3.4 迭代器介绍 迭代器提供对容器类对象的间接访问。string不属于容易类型但支持类似操作。 3.4.1 使用迭代器 begin成员指向容器第一个元素,end指向最后一个元素后一个位置,称为尾后迭代器。 迭代器运算:*iter; iter->mem; ++iter; --iter; iter1 == iter2; ite...原创 2018-08-01 21:24:17 · 169 阅读 · 0 评论 -
c++ primer 笔记第六章函数(一)
第六章 函数梗概:本章介绍了函数的定义与调用相关的概念,函数重载函数匹配的过程和函数指针也是重点。函数是一段命名了的代码块,调用函数执行相应的代码。函数有0到多个参数,通常产生一个结果。6.1 函数基础典型的函数包括:返回类型、函数名字、0到多个形参列表以及函数体。调用运算符 () 执行函数。函数的调用分为主调函数和被调函数。调用时改变程序控制权并初始化形参列表。ret...原创 2018-08-08 15:24:02 · 174 阅读 · 0 评论 -
c++ primer 笔记第六章函数(二)
6.4 函数重载同一作用域内名字相同形参列表不同的函数被称为重载函数。main函数不能重载。重载函数需要有形参数量或者形参类型不同,不允许除了返回值类型不同其它都相同的重载。形参是否起名字不影响相同,顶层const不影响相同。底层const影响。当传递实参为指向非常量的引用或指针,优先使用非常量版本的函数。const_cast 对于使用带有底层const形参或返回值的函数很...原创 2018-08-08 16:32:03 · 151 阅读 · 0 评论 -
c++ primer 第七章习题
练习7.5 应该,不需要写操作。练习7.6 7.7#include <iostream>#include <string>#include "Sales_data.h" using namespace std;ostream& print(ostream& os, const Sales_data& item) { os &...原创 2018-08-10 17:28:42 · 248 阅读 · 0 评论 -
c++ primer 笔记第八章IO库
第八章 IO库梗概:本章主要介绍了C++标准IO库,包括iostream标准输入输出,fstream文件输入输出和sstream字符串输入输出。8.1 IO类io类主要有三种,主要是定义在iostream、fstream和sstream三个头文件之中。ifstream和istringstream都继承自istream。因此可以像使用istream一样使用其它两个类的对象。并且在使用...原创 2018-08-16 22:34:46 · 291 阅读 · 0 评论 -
c++ primer 笔记第十章泛型算法
第十章 泛型算法梗概:介绍了c++标准库里面对顺序容器的很多算法,并且进一步加深的迭代器的讲解。10.1 概述算法大多数定义在algorithm头文件中,算法并不直接操作容器而是遍历一个迭代器范围。迭代器可以让算法不依赖于容器,而是直接通过迭代器操作每个元素。因此依赖于元素类型的操作如< == 等等。算法本身永远不会改变底层容器的大小,即不会添加删除元素。但是通过操作插入...原创 2018-08-22 19:45:49 · 202 阅读 · 0 评论 -
c++ primer 第十一章习题
练习11.1 map下标是关键字,可以设定类型。vector下标是整数。 map的元素是pair, vector是一个单类型。练习11.3 11.4#include <iostream>#include <map>#include <set>#include <unordered_set>#include <unordered...原创 2018-08-23 22:20:45 · 3121 阅读 · 0 评论 -
c++ primer 第九章习题
练习9.1(a) 使用vector+sort 或 sort(b) deque (c) vector+sort 大量小型数据练习9.2 list<deque<int>> x;练习9.3 需要有两个指向同一容器的迭代器。begin不在end后面。练习9.4bool findX(vector<int>::iterator begin, ...原创 2018-08-21 19:34:02 · 816 阅读 · 0 评论 -
c++ primer 第十九章习题
练习19.21-25#ifndef TOKEN_H#define TOKEN_H#include&lt;iostream&gt;#include&lt;string&gt;#include "Sales_data.h"using std::string;class Token{ friend std::ostream &amp;operator&原创 2018-11-03 15:10:27 · 357 阅读 · 0 评论