《c++标准库》 第2版 学习笔记 准备知识 持续更新中

c++标准库功能的强大,在刷LeetCode的时候深刻的体会到,所以把看这本书的重要知识点摘抄上来:

c++新特性:

c++11的更新是一个很大的革新,所以先了解一下c++11的新特性,以及很多很实用的东西:

1. 以auto完成自动类型推导:

auto i = 42  //此时i是一个int型变量   

以auto声明的变量,需要跟据其初值推导其变量类型,所以需要对其进行初始化。

2.  列表初始化:

std::vector<int> v{1,2,3,4,5,6,7};

3.   range-based for 循环:

std::vector<int> v{1,2,3,4,5};
for(auto c:v){
    std::cout << c << std::endl;
}

4. lambda:

这个关键字在之前学习《Python学习手册》也看到过,真的很好用。

一个lambda表达式一个可调用的代码单元。我们可以把它理解为一个为命名的内联函数。与任何函数类似,一个lambda具有一个返回类型、一个参数列表和一个函数体。但与函数不同的是,lambda可能定义在函数内部。

[capture list](parameter list) ->return type{function body}

捕获列表是一个lambda所在函数中定义的局部变量的列表(通常为空);其余与正常函数类似,但与普通函数不同的是,lambda必须使用尾置返回。且lambda不能有默认参数。

例:

[](const string & a, const string &b)
    { return a.size() < b.size();}

例:

stable_sort(words.begin(), words.end(),
              [](const string &a, const string &b)
                { return a.size() < b.size();})

值捕获:引用捕获 隐式捕获& = 

4. decltype类型指示符:

decltype(f()) sum = x;   //sum的类型就是f()的返回类型

一些一般概念:

1. namespace std:

2. 头文件:

3. error and exception:

4. callable object

5. 并发与多线程

一些通用工具:

1. pair and tuple

2. 智能指针

3.  辅助函数  min max minmax swap

4.  常用c函数

猜你喜欢

转载自blog.csdn.net/qq_23905237/article/details/86534989