![](https://img-blog.csdnimg.cn/e74a5c901945427080c6192051f29a76.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
C++ Primer
文章平均质量分 80
C++Primer学习记录
zdb呀
一直往南方开,不会太久
展开
-
第12章 动态内存
第12章 动态内存动态内存的对象的生存期与它们在哪里创建是无关的,只有当显式地被释放时,这些对象才会销毁。为了更安全地使用动态对象,标准库定义了两个智能指针类型来管理动态分配的对象。当一个对象应该被释放时,指向它的智能指针可以确保自动地释放它。静态内存用来保存局部static对象、类static数据成员以及定义在任何函数体之外的变量。栈内存用来保存定义在函数体内的非static对象。分配在静态或栈内存中的对象由编译器自动创建和销毁。static对象在使用之前分配,在程序结束时销毁。12.1原创 2022-04-27 19:32:40 · 242 阅读 · 0 评论 -
【C++Primer】第11章 关联容器
第11章 关联容器关联容器按关键字来保存和访问;与顺序容器不同11.1 使用关联容器map<string, size_t> word_count;string word;while(cin >> word){ ++word_count[word];}for(const auto& w : word_count){ cout << w.first << "出现" << w.second << "次原创 2022-02-22 15:33:15 · 178 阅读 · 0 评论 -
【C++ Primer】第10章 泛型算法
第10章 泛型算法不同容器都能用的算法经典算法的公共接口:如排序,搜索10.1 概述大多数算法都定义在头文件algorithm中。标准库还在头文件numeric中定义了一组数组泛型算法。int val = 42;auto res = find(vec.cbegin(), vec.end(), val);cout << "The value " << val << (res == vec.cend() ? "找到" : "未找到") <<原创 2022-02-22 11:03:53 · 386 阅读 · 0 评论 -
【C++ Primer】第9章:顺序容器
第9章 顺序容器顺序容器为程序员提供了控制元素存储和访问顺序的能力。这种顺序不依赖于元素的值,而是与元素加入容器时的未知相对应。9.1 顺序容器概述一个容器就是一些特定类型对象的集合forward_list和array是新C++标准增加的类型与内置数组类似,array对象的大小是固定的,array不支持添加和删除元素以及改变容器大小的操作forward_list没有size操作9.2 容器库概述特定类型数据注意初始值//假定noDefault是一个没有默认构造函数的类型vector&l原创 2022-01-25 15:42:21 · 1156 阅读 · 0 评论 -
【C++Primer】第8章:IO库
第8章 IO库8.1 IO类宽字符版本的类型和函数的名字以一个w开始目前为止,我们使用过的IO类型和对象都是操纵char数据的不能拷贝或对IO对象赋值不能将形参或返回类型设置为流类型ofstream out1, out2;out1 = out2; //错误ofstream print(ofstream); //错误out2 = print(out2); //错误条件状态一个流一旦发生错误,其上后续的IO操作都会失败。只有当一个流处于原创 2021-12-24 16:33:14 · 316 阅读 · 0 评论 -
【C++Primer】第7章:类
第7章 类7.1 定义抽象类数据类型成员函数的声明必须在类的内部,它的定义则既可以在类的内部也可以在类的外部string isbn() const {return bookNo;}string isbn() const {return this->bookNo;}this的目的总是指向“这个”对象,所以this是一个常量指针const的作用是修改隐式this指针的类型默认情况下,this的类型是指向类类型非常量版本的常量指针;例如Sales_data *constconst使其成为指原创 2021-12-23 21:55:34 · 528 阅读 · 0 评论 -
【C++Primer】第6章:函数
第6章 函数6.1 函数基础函数的调用完成两项工作:一是用实参初始化函数对应的形参,二是将控制权转移给被调函数。被调函数的return语句也完成两项工作:一是返回return语句中的值(如果有的话),二是将控制权从被调函数转移到主调函数。定义空形参列表void f1(){} //隐式的定义形参列表void f2(void){} //显式的定义形参列表函数的返回类型不可以是数组类型或函数类型,但可以是指向数组或函数的指针。形参:函数定义时的参数实参:函数调用时的参数,函数实际操原创 2021-12-22 12:16:07 · 359 阅读 · 2 评论 -
【C++Primer】第5章:语句
第5章 语句5.1 简单语句语句以分号结束空语句:在程序的某个地方,语法上需要一条语句,但是逻辑上不需要,使用空语句。块语句:在程序的某个地方,语法上需要一条语句,但是逻辑上需要多条语句,使用块语句(复合语句)。空块的作用等价于空语句5.2 语句作用域5.3 条件语句if,switch,case标签必须是整型常量表达式5.4 迭代语句while,传统for,范围for,do…while范围for是C++11新标准,能直接遍历到容器中元素do…while先执行循环体,再检查条件do原创 2021-12-21 13:19:03 · 590 阅读 · 0 评论 -
【C++Primer】第4章:表达式
第4章 表达式4.1 基础函数调用也是一种特殊的运算符一些符号既能作为一元运算符,也能作为二元运算符,具体由上下文决定。左值可以位于赋值语句的左侧,右值则不能。当一个对象被用作右值的时候,用的时候对象的值(内容)当对象被用作左值的时候,用的是对象的身份(在内存中的位置)使用decltype的时候,如果表达式求值结果是左值,得到一个引用类型假设p的类型是int*decltype(*p)的结果是 int&decltype(&p)的结果是 int**,即指向整型指针的指针求原创 2021-12-20 17:02:29 · 343 阅读 · 0 评论 -
【C++ Primer】第3章:字符串、向量和数组
第3章 字符串、向量和数组string表示可变长的字符序列vector存放的是某种给定类型对象的可变长序列使用命名空间using namespace std;头文件不应包含using声明1. 标准库类型string字符串初始化string s1;string s2(s1);string s3("values"); //直接初始化string s3 = "values"; //拷贝初始化string s4(n, 'c'); //n个c组成字符串 直接原创 2021-12-17 11:55:06 · 534 阅读 · 0 评论 -
【C++Primer】第2章:变量和基本类型
第2章 变量和基本类型数据类型分无符号和带符号编译器类型charshortintlongfloatdouble指针32位编译器1字节24448464位编译器1字节2484888比特的signed char范围为-128~127区间字面值常量整型和浮点型字面值:默认整型字面值为double字符和字符串字面值:编译器在每个字符串的结尾处添加一个空字符(’\0’),因此,字符串字面值的实际长度比它的内容多1除了常见的字原创 2021-12-16 11:44:59 · 160 阅读 · 0 评论 -
【C++Primer】第1章:开始
第1章 开始1. IO对象标准库定义了4个IO对象标准输入:cin标准输出:cout标准库还定义了其他两个ostream对象,名为cerr和clogcerr输出警告和错误消息,被称为标准错误clog用来输出程序运行时的一般性消息endl的效果是结束当前行,并将设备关联的缓冲区中的内容刷到设备中。缓冲刷新操作可以保证到目前为止所产生的所有输出都真正写入输出流中,而不是仅停留在内存中等待写入流。2. std命名空间将库定义的名字放在一个单一位置的机制命名空间可以帮助我们避免不经意的名字定原创 2021-12-14 22:17:42 · 796 阅读 · 0 评论