C++ Primer(第五版) 笔记 C01-02

C01

  1. ++val; 优于 val++;
  2. 对数量不定的输入数据:while(cin>>value)...
    遇到无效的输入或eof后,cin变为无效状态,条件变为
  3. 来自标准库的头文件用<>包围,不属于标准库的用""包围。
  4. 文件重定向工作:exename.exe <infile >outfile
  5. 点运算符:左侧运算对象是类类型的,右侧是该类型的成员
  6. 参数 = 实参 = 值,形参指出调用函数可使用什么实参
  7. 定义在函数内部的内置类型通常不初始化。

C02

  1. char类型:可以确保存放机器基本字符集任何一个字符。
    wchar_t类型用于存放机器最大扩展字符集中任意一个字符。
  2. 明确知晓数值不可能为负时,使用无符号类型。
  3. char未被显式定义为有/无符号,不适合代码移植。
  4. 对于无符号整型赋溢出的值,结果是对其初始值所表示总数取模后的余数;对于有符号类型,结果是undefined
  5. uint与int运算,int转化为uint
  6. 字面值常量没有负数字面值。
  7. 指针的字面值只有nullptr
  8. 初始化(包含在内存中开辟空间的过程)≠赋值。对于内置类型,必须初始化(定义+赋值)后使用。
  9. 初始化:
    1. int a=0;(拷贝初始化)
    2. int a(0);(直接初始化)
  10. 默认初始化:初始化每个类的内置类型的变量
  11. 分离式编译:声明(+extern,多次)≠定义(一次)。
  12. 第一次使用变量的时候定义变量,以防变量覆盖。
  13. 引用 ∈ 左值
    引用必须被初始化,且无法改绑定。引用不是一个对象。
  14. 空指针:pointer = 0; 建议初始化所有指针
  15. 变量声明与定义一律从右向左
    例如指向指针的引用使用 int *&ref_ptr;
  16. 先出现的const(右面的)称为顶层const,其本身是一个常量;底层const表示其指向的对象是常量
  17. (C++11)decltype(string::size_type),用于返回操作数的数据类型。
  18. 头文件通常只包含那些只能被定义一次的实体。

C++ Primer(第五版) 笔记 C01-02

时间: 2024-08-15 09:41:36

C++ Primer(第五版) 笔记 C01-02的相关文章

c++ primer 第五版 笔记前言

这是一本关于c++ primer 第五版的 学习笔记笔者当初以第四版入门,如今希望温故知新,看看经典之作的第五版,如有不足,请在评论处支出

C++ Primer 第五版学习笔记

<C++ Primer>第五版中文版学习笔记 ? C++ Primer 第五版学习笔记

C++ Primer(第五版)学习笔记_9_标准模板库_multimap多重映照容器

C++ Primer(第五版)学习笔记_9_标准模板库_multimap多重映照容器 多重映照容器multimap与map结构基本相同,但由于重复键值存在,所以multimap的元素插入.删除.查找都与map的方法不相同. 1.multimap对象创建.元素插入 插入元素时,需要使用insert()方法和类似pair<string,double>("Jack", 300.5)的元素结构.可以看到,重复的元素是按照插入的先后顺序排序的. #include <iostre

C++ Primer(第五版)学习笔记_5_标准模板库string(2)

C++ Primer(第五版)学习笔记_5_标准模板库string(2) 10.搜索string对象的元素或子串 采用find()方法可查找字符串中的第一个字符元素(char, 用单引号界定)或者子串(用双引号界定):如果查到,则返回下标值(从0开始计数),如果查不到,则返回一个很大的数string:npos(即:4294967295). #include <iostream> #include <stdio.h> #include <string> using nam

C++ Primer(第五版)学习笔记_3_标准模板库vector(2)

C++ Primer(第五版)学习笔记_3_标准模板库vector(2) 欢迎大家阅读参考,如有错误或疑问请留言纠正,谢谢 6.元素的插入 insert()方法可以在vector对象的任意位置前插入一个新的元素,同时,vector自动扩张一个元素空间,插入位置后的所有元素依次向后挪动一个位置. 要注意的是,insert()方法要求插入的位置,是元素的迭代器位置,而不是元素的下标. #include <iostream> #include <vector> using namespa

C++ Primer(第五版)学习笔记_1_标准模板库--快速入门

C++ Primer(第五版)学习笔记_1_标准模板库--快速入门 欢迎大家阅读参考,如有错误或疑问请留言纠正,谢谢 标准模板库(STL)提供三种类型的组件:容器.迭代器和算法,他们都支持泛型程序设计标准. 容器主要有两类:顺序容器和关联容器.顺序容器(vector.list.deque和string等)是一系列元素的有序集合.关联容器(set.multiset.map和multimap)包含查找元素的键值. 迭代器的作用是遍历容器. STL算法库包含四类算法:排序算法.不可变序算法.变序性算法

C++ Primer(第五版)学习笔记_2_标准模板库vector(1)

C++ Primer(第五版)学习笔记_2_标准模板库vector(1) 欢迎大家阅读参考,如有错误或疑问请留言纠正,谢谢 向量容器vector不但能像数组一样进行随机访问,还能在尾部插入元素,完全可以替代数组. 值得注意的是,vector具有内存自动管理的功能,对于元素的插入和删除,可以动态调整所占的内存空间. 容器vector的下标是从0开始的,如果vector容器的大小是n,则元素下标为0~n-1,这和数组的一样的.不一样的是,vector可以随时调整其大小. vector重要的方法有三个

C++ Primer(第五版)学习笔记_4_标准模板库string(1)

C++ Primer(第五版)学习笔记_4_标准模板库string(1) 1.创建string对象 创建一个空字符串,其长度为0 #include <iostream> #include <string> using namespace std; int main(int argc, char* argv[]) { string s; cout << s.length() << endl; return 0; } 运行结果: 0 2.给string对象赋值

C++ Primer(第五版)学习笔记_6_标准模板库_set集合容器

C++ Primer(第五版)学习笔记_6_标准模板库_set集合容器 Set集合容器实现了红黑树(Red-BlackTree)的平衡二叉检索树的数据结构,在插入元素时,它会自动调整二叉树的排序,把该元素放到适当的位置. (1)确保每个子树根节点的键值大于左子树所有节点的键值,而小于右子树所有节点的键值: (2)另外,还得确保根节点左子树的高度与右子树的高度相等.这样,二叉树的高度最小,从而检索速度最快. 平衡二叉检索树的检索使用中序遍历算法,检索效率高.默认情况下,将键值由小到大遍历. 对于s

C++ Primer(第五版)学习笔记_8_标准模板库_map映照容器

C++ Primer(第五版)学习笔记_8_标准模板库_map映照容器 map映照容器的元素数据是由一个键值和一个映照数据组成的,键值与映照数据之间具有一一映照的关系. map映照容器的数据结构也是采用红黑树来实现的. 1.map创建.元素插入和遍历访问 #include <iostream> #include <stdio.h> #include <vector> #include <map> #include <string> using n