C++

1. 面向对象编程

2. 泛型编程:将数据类型泛化,对数据类型进行一层抽象

1.1 函数模板

  • 基本语法
  • 具体化

1.2 类模板

3. STL(标准模板库)

  • 容器(数据结构)
  • 算法
  • 迭代器
  • 仿函数
  • 适配器(配接器)
  • 空间配置器

3.0 iterator

1. 定义

2.

3. 运算

3.1 string

1. 定义

2. 初始化和赋值

  • 初始化:val,string,(num,char)
    • 直接初始化
    • 拷贝初始化
  • 赋值:val,string,(num,char)

3. 运算

  • >,<,==,!=
  • +
    • string+string =>right
    • string+val or val+string =>right
    • val+val =>error
  1. string a("hello");
  2. string b("world");
  3. string c = a+b; //right
  4. string d = a+"world"; //right
  5. string e = "hello" + "world"; //error
  6. //[Error] invalid operands of types 'const char [6]' and 'const char [6]' to binary 'operator+'

4. 方法

  • 读入s

    • cin >> s:忽略开始的空格,之后遇到空格输入结束

      1. cin >> s;
      2. input output
      3. hello world hello
    • getline(cin,s):一次读入一行,getline读入换行符,但换行符不会被输入string

    • 不能使用printf/scanf,若要使用需先转化为字符数组(见算法笔记P203)
  • s.begin() s.end()
  • s.length()/s.size() //s.empty()
    • s.size()返回unsigned int,在与int比较时容易出现问题
  • find() insert() erase() clear()
  • substr() replace()
  • 中的函数:ispunct() toupper()

5. 使用

  • 遍历
  1. for(auto it = s.begin(); it!=s.end(); it++)
  2. *it = toupper(it);

3.2 vector

4. C++之道

  • 面向对象思想(OOP):抽象变量和函数
  • 泛型编程思想(GP):抽象类的数据类型