Essential C++第三章 泛型编程风格

指针的算术运算

相关概念

vector可以是空的,但是数组array则不行

了解Iterator

相关概念

主要泛型算法:

  • 搜索算法:find()、count()、adjacent_find()、find_if()、count_if()、binay_search()、find_first_of()
  • 排序及次序整理算法:merge()、partial_sort()、pattition()、random_shuffle()、reverse()、rotate()、sort()
  • 复制、删除、替换算法:copy()、remove()、remove_if()、replace()、replace_if()、swap()、unique()
  • 关系算法:equal()、includes()、mismatch()
  • 生成与质变算法:fill()、for_each()、generate()、transform()
  • 数值算法:accumulate()、adjacent_difference()、patial_sum()
  • 集合算法:set_union()、set_difference()

所有容器的共通操作

相关概念

共通操作:

  • ==、!=、=、empty()、size()、clear()
  • begin()和end(),其中end()指向容器的最后一个元素的下一位置
  • insert()和erase()

重点

默认参数值提供的规则

  1. 默认值的解析操作由最右边开始进行。如果我们为某个参数提供了默认值,那么这一参数右侧的所有参数都必须也具有默认参数值才行。
  2. 默认值只能够指定一次。

使用顺序性容器

相关概念

主要顺序性容器:vector 和 list、deque

  • vector以一块连续内存来存放元素
  • list是双向链表结构,其可以执行前进或后退操作
  • deque的行为和vector很相似,其对于最前端元素的插入和删除操作,效率更高,末端元素也是一样

使用泛型算法

重点

  • find()用来搜索无序集合中是否存在某值
  • binary_search()用于有序集合的搜索

如何设计一个泛型算法

相关概念

函数重载机制:参数列表(而非返回类型)不同的两个或多个函数,可以拥有相同的函数名称

使用Map

相关概念

  • key-value 键值对
  • it -> first 对应key it -> second 对应value
  • 如果需要储存多份相同的key值,就必须使用multimap

使用Set

相关概念

  • set由一群key组合而成。如果我们想知道某值是否存在于某个集合内,就可以使用set。
  • 对于任何key值,set只能储存一份,否则要使用multiset。

如何使用Iterator Inserter

使用iostream Iterator

发布了59 篇原创文章 · 获赞 3 · 访问量 1818

猜你喜欢

转载自blog.csdn.net/Felix_hyfy/article/details/98511923
今日推荐