
C++Primer学习笔记
文章平均质量分 78
gnez-dd
这个作者很懒,什么都没留下…
展开
-
面向对象程序设计OOP
面向对象程序设计OOP OPP概述 核心思想 数据抽象:将类的接口和实现分离 继承:定义相似的类型并对其相似关系建模 动态绑定:在一定程度上忽略相似类型的区别,以统一的方式使用其对象 继承 通过继承联系在一起的类构成一种层次关系,通常在层次关系的根部有一个基类,其他类则直接或间接地从基类继承而来,这些继承得到的类称为派生类,基类定义在层次关系中所有类共同拥有的成员,而每个派生类定义各自持有的成员 某些函数,基类希望其派生类各自定义适合自身的版本,此时基类就将这些函数声明成虚函数 允许派生类显式注原创 2021-06-13 23:22:43 · 215 阅读 · 0 评论 -
重载运算与类型转换
重载运算与类型转换 基本概念 重载的运算符是具有特殊名字的函数,operator运算符号 返回类型、参数列表、函数体 如果一个运算符函数是成员函数,则其第一个运算对象绑定到隐式的this指针上,因此成员运算符函数的(显式)参数数量比运算符的运算对象总数少一个 运算符函数或者是类的成员,或者至少含有一个类类型的参数 //int operator+(int,int); //不能为int重定义内置运算符 不能被重载的运算符 :: .* . ?: 直接调用一个重载的运算符函原创 2021-06-11 12:07:04 · 373 阅读 · 2 评论 -
C++动态内存
动态内存 动态分配的对象的生存期与其在哪创建无关,只有当显式地被释放时,对象才会被销毁 动态内存和智能指针 new:在动态内存中为对象分配空间并返回一个指向该对象的指针 delete接受一个动态对象的指针,销毁该对象,并释放与之关联的内存 shared_ptr类 为模板,当创建一个智能指针时,必须提供额外的信息——指针可以指向的类型 允许多个指针指向同一个对象 shared_ptr<string>p1;//可以指向string shared_ptr<list<int>原创 2021-06-07 22:28:57 · 152 阅读 · 4 评论 -
C++关联容器
关联容器 关联容器中的元素是按关键字保存和访问的,顺序容器中的元素按其在容器中的位置顺序保存和访问的 map与multimap定义在头文件map中,set与multiset定义在头文件set中,无序容器定义在头文件unordered_map和unordered_set中 关联容器的迭代器都是双向的 关联容器概述 定义关联容器 每个关联容器都定义了一个默认构造函数,其创建一个指定类型的空容器 map<string,size_t>word_count;//空容器 //列表初始化 set<原创 2021-06-07 14:27:19 · 112 阅读 · 1 评论 -
C++泛型算法
泛型算法 大多数算法都定义在头文件algorithm,标准库在在头文件numeric中定义一组数值泛型算法 一般算法并不直接操作容器,而是遍历由两个迭代器指定的一个元素范围操作(输入范围) 初识泛型算法 只读算法 只读取其输入范围内的元素,不改变元素 find accumulate包含在numeric中 equal用于确定两个序列是否保存相同的值 int sum = accumulate(vec.cbegin(),vec.cend(),0); //前两个参数指出了需要求和的元素的范围,第三个参数是和原创 2021-06-06 16:24:09 · 150 阅读 · 0 评论 -
C++顺序容器
顺序容器 vector 可变大小数组。支持快速随机访问。在尾部之外的位置插入或删除元素可能很慢 deque 双端队列。支持快速随机访问。在头尾位置插入/删除速度很快 list 双向链表。只支持双向顺序访问。在list中任何位置进行插入/删除操作速度都很快 forword_list 单向链表。只支持单向顺序访问。在链表任何位置进行插入/删除操作速度都很快 array 固定数组大小。支持快速随机访问。不能添加或删除元素 string 与vector相似的容器,但专门用于保存字符原创 2021-06-02 12:39:07 · 202 阅读 · 1 评论 -
C++IO库
IO库 IO类 iostream头文件 istream、wistream从流读取数据 ostream、wostream向流写入数据 iostream、wiostream读写流 fstream头文件 ifstream、wistream从文件读取数据 ofstream、wofstream向文件写入数据 fstream、wfstream读写文件 sstream头文件 istringstream、wistringstream从string读取数据 ostringstream、wostrings原创 2021-06-01 20:22:34 · 176 阅读 · 0 评论 -
C++函数
函数 参数传递 数组形参 void print(const int*); void print(const int[]); void print(const *int[10]); //等价 数组引用形参 void print(int (&arr)[10]){ for(auto elem : arr) cout<<elem<<endl; } int i=0,j[2]={0,1}; int k[10]={0,1,2,3,4,5,6,7,8,9}; //原创 2021-05-31 16:50:48 · 159 阅读 · 0 评论 -
异常处理语句
语句 范围for语句 for(declaration:expression) statement vector<int>v={0,1,2,3,4,5,6}; for(auto &r :v)//对于v中的每一个元素 R *= 2;//将v中每个元素的值乘2 try语句块和异常处理 C++中异常处理 throw表达式,异常检测部分使用throw表达式表示其遇到了无法处理的问题。throw引发了异常 try语句块,异常处理部分使用try语句块处理异常,try语句块以关键原创 2021-05-31 14:15:57 · 570 阅读 · 0 评论 -
字符串、向量和数组
字符串、向量和数组 标准库类型string 可变长的字符序列 包含string头文件 定义和初始化string对象 string s1; //默认初始化,s1是一个空串 string s2(s1); string s2 = s1; //s2是s1的副本 string s3("value"); string s3="value"; string s4(n,'c'); //把s4初始化为由连续n个字符c组成的串 直接初始化与拷贝初始化 使用**=**:拷贝初始化,编译器将等号右侧的初始值拷贝到新创原创 2021-05-31 13:36:03 · 118 阅读 · 0 评论 -
变量和基本类型
C++为静态类型语言,在编译阶段检查类型 编译器负责检查数据类型是否支持要执行的运算,如果不支持,编译器将报错 变量和基本类型 基本内置类型 算术类型 空类型 算术类型 整型(包括字符和布尔类型) 浮点型 类型转换 将非布尔类型的算术值赋给布尔类型时,初始值为0结果为false,否则结果为true 将布尔类型赋给非布尔类型时,初始值为false结果为0,否则结果为1 赋给带符号类型一个超出其表示范围的值时,结果为未定义,程序可能继续工作、崩溃、或产生垃圾数据 变量 初始化 int a=.原创 2021-05-30 23:23:58 · 103 阅读 · 0 评论