【C++】《C++ Primer 》第十章】的更多相关文章

//1.标准库算法不仅可以应用于容器,还可以应用于内置数组,指针. //2.大多数算法都定义在头文件algorithm中.标准库还在头文件numeric中定义了一组数值泛型算法. //3.算法本身不会改变其操作对象的大小,但是通过插入迭代器,可以间接改变传入容器的大小. //4.lambda表达式: // A:一个lambda具有返回类型(必须由尾置返回),一个参数列表,一个函数体.可以定义在函数的内部. // B:如果lambda的函数体包含任意return之外的语句,则其默认的返回值类型是v…
一.lambda表达式 lambda表达式原型: [capture list] (parameter list) -> retrue type { function body } 一个lambda表达式表示一个可调用的代码单元,可以理解为一个未命名的内联函数.一个lambad表达式包含 : 一个捕获列表,一个参数列表,一个返回类型和函数体. 但与函数不同的是,lambda可能定义在函数内部. lambda可以忽略参数列表和返回类型,但必须包含捕获列表和函数体.  如果一个lambda的函数体包含…
大多数算法都定义在<algorithm>头文件里,而标准库还在头文件<numeric>里定义了一组数值泛型算法,比如accumulate. ●  find算法,算法接受一对迭代器表示要搜寻的范围,还接受一个给定的值,算法从给定的范围内查找,返回指向第一个等于给定值的元素的迭代器,若没有找到,则返回第二个参数. int val = 5; vector<int> vec = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; auto find_val…
关联容器 和 顺序容器 的本质差别在于: 关联容器通过键(key)存储和读取元素,而顺序容器则通过元素在容器中的位置顺序存储和访问元素. Reference: http://www.cnblogs.com/kingcat/archive/2012/05/11/2496135.html Continue... 有点多 关联容器类型 map 关联数组:元素通过键来存储和读取 set 大小可变的集合,支持通过键实现的快速读取 multimap 支持同一个键多次出现的 map 类型 multiset 支…
前言 在刷Leetcode的时候发现很多运算速度极快的代码都有这一段,所以研究一下. static const auto _ = []() { ios::sync_with_stdio(false); cin.tie(nullptr); return nullptr; }(); 第一次见这种代码懵了下,auto有接触过,其他就不太熟悉. 另一篇文章里也有详细解析 [黑胡椒和盐](https://blog.csdn.net/qq_32320399/article/details/81518476)…
第十章 泛型算法 一.概述 因为它们实现共同的操作,所以称之为"算法".而"泛型",指的是它们可以操作在多种容器类型上. 泛型算法并不直接操作容器,而是遍历由两个迭代器指定的一个元素范围来进行操作. 头文件:#include<algorithm> 或者 #include<numeric>(算数相关). 大多数算法是通过遍历两个迭代器标记的一段元素来实现其功能. 关键概念:算法永远不会执行容器的操作.必要的编程假定:算法永远不会改变底层容器的大…
除了为每个容器定义的迭代器之外,标准库在头文件<iterator>还定义了额外集中迭代器, 包括: 插入迭代器,这些迭代器被绑定到一个容器上,可以向容器插入元素. 流迭代器,    这些迭代器被绑定到输入或输出流上,可以遍历所关联的IO流 反向迭代器,这些迭代器向后而不是向前移动,除了forward_list之外的标准库容器都有反向迭代器. 移动迭代器,这些专用得对得起不是拷贝而是移动其中的元素. 插入迭代器 插入迭代器操作: it = t 在it指定的位置插入值t *it, ++it, --…
这一章的标题是数组和指针.指针是C语言的精髓所在,而数组的概念和指针又息息相关,所以放在一起讲. 1.数组 主要内容有:1.1.数组初始化.1.2.指定初始化.1.3.数组赋值.1.4.数组边界.1.5.指定数组大小. 其中要注意的是,1.2中的C99新增的特性,可以指定某些元素进行初始化. int arr[6] = {[5]=212}; 在该代码中,数组的最后一个元素初始化为212,其他为0. 而1.3中要注意的是,C不支持把数组作为一个整体来赋值,这和Java.python都不一样,也不支持…
1. 过程性编程和面向对象编程 2. 抽象和类 1. 使用类对象的程序都可以直接访问公有部分,但只能通过公有成员函数(或友元函数)来访问对象的私有成员 2. 可以在类声明之外定义成员函数,并使其成为内联函数 3. 类的构造函数和析构函数 1. 接受一个参数的构造函数允许使用赋值语法将对象初始化为一个值 4. this指针 5. 对象数组 6. 类作用域 1. 以下类定义方式是错误的,应为在声明类前Month不存在 class Bakery { private: ; double costs[Mo…
过程性编程和面向对象编程 面向对象编程(OOP)的特性: 抽象 封装和数据隐藏 多态 继承 代码的可重用性 抽象和类 类是一种将抽象转化为用户定义类型的C++工具,它将数据表示和操纵数据的方法合成一个简洁的包. 类的构造函数和析构函数 构造函数:与类名相同 析构函数:~类名 对象初始化方式: classname cn=classname(….);或者classname cn(…); 若类的成员函数不修改调用对象,就应该标识为const类型,如:void show() const; this指针…