Geekband C++ 第七周

2016-09-05  本文已影响0人  billow06

概述

● 泛型算法:介绍了基本使用方式和算法的接口
  ○ 变易算法
  ○ 排序算法
  ○ 数值算法
● 内存分配器

变易算法

● 指改变容器中对象的操作
● 复制
  ○ copy
      ■ 将一个容器中的元素拷贝到另一个容器
      ■ 可以实现容器中对象的左移
  ○ copy_n
      ■ 拷贝n个元素至另一个容器
  ○ copy_backward
      ■ 将容器的元素拷贝至另一个容器的后端
      ■ 可以实现对象的右移
  ○ copy_if
      ■ 拷贝满足条件的元素至另一个容器
● swap
  ○ swap
      ■ 交换两个容器
  ○ swap_range
      ■ 用于进行两个迭代器区间元素的交换
      ■ 将迭代器区间[first1,last1)的元素,与迭代器区间[first2,first2+(last1-first1))迭代器区间元素交换其中*first1和*first2交换、*(first+1)和*(first2+1)交换、...*(last1-1)和*(first2+ last1-fitst1)-1)交换。
● transform
  ○ transform
      ■ 对容器中的每个元素进行变换
      ■ 对两个容器的中的元素进行变换,并将结果存放在目标容器中
● replace
  ○ replace
      ■ 替换容器中指定元素
  ○ replace_if
      ■ 替换容器中满足条件的元素
  ○ replace_copy
      ■ 将元素从一个容器拷贝到另一个容器,并替换指定元素
  ○ replace_copy_if
      ■ 将元素从一个容器拷贝到另一个容器,并替换满足条件的元素
● fill
  ○ 填充容器,可以用作初始化
● generate
  ○ 按一定规则(Fun),为容器生成元素
● remove
  ○ remove
      ■ 删除容器中的特定元素
  ○ remove_if
      ■ 删除满足条件的元素
  ○ remove_copy
      ■ 拷贝不等于val的元素至另一个容器
● unique
      ■ 对容器中的元素去重
● reverse
      ■ 反转容器中的元素
● random_shuffle
      ■ 随机打乱容器中的元素
● partition
      ■ 根据条件对容器中的元素进行划分

排序算法

● sort,partial_sort
  ○ 对容器中的元素排序或部分排序
  ○ 元素需要可以比较大小
● binar_search
  ○ 实现二分查找算法
  ○ 前提:已排好序
● merge
  ○ 将排好序的容器merge成一个排好序的容器
● 集合算法
  ○ include 
      ■ 判断一个容器是否包含另一个容器
  ○ set operations
● 堆算法
  ○ make_heap
  ○ push_heap
  ○ pop_heap
  ○ sort_heap

数值型算法

● 定义在<numeric>头文件中
● accumulate
  ○ 默认实现累加
  ○ 用户可以定义函数实现累积运算
● inner_product
  ○ 默认实现内积操作
  ○ 可以自定义‘内积’操作
● partial_sum
● adjacent_difference

内存分配器

● 内存分配器的接口

clipboard.png

● 接口说明

clipboard1.png
上一篇下一篇

猜你喜欢

热点阅读