c++ STL 001 基本概念

学习网站
  1. www.cplusplus.com
  2. en.cppreference.com/w/
  3. gcc.gnu.org
STL

STL(Standard Template Library),即标准模板库,是一个具有工业强度的,高效的C++程序库

c++ STL 001 基本概念_第1张图片

  1. 容器: Containers

     需要操作的数据对象
    
  2. 分配器 : Allocators

     使用分配器对容器需要的内存空间进行分配
    
  3. 算法: Algorithms

     被独立出来的模板函数,用来操作容器。
    
  4. 迭代器: Iterators

    是一种泛化的指针。当需要使用算法操作数据的时候,需要迭代器从容器中取得数据,然后交给算法来进行处理,迭代器就是将容器中的数据进行取出。
    
  5. 适配器: Adapters

    当各个部件不能够完美的进行相互协作的时候,使用适配器进行各个部件之间的适配,保证部件之间的正确运行。
    
  6. 仿函数: Functors

    类似于是类中的operator()小括号运算符重载函数。可看作是一种操作符的重载。
    
int ia[6] = {1,2,3,4,5,6};
vector<int, allocator<int>> vi(ia,ia+6);
/**
vector 容器
allocator 分配器
分配器分配的数据类型应该和容器的数据类型一致。默认编译器会给每一种容器匹配一个默认的分配器。
*/

cout <<count_if(vi.begin(),vi.end(),notl(bind2nd(less<int>(),40)))
/**
	count_if 算法
	vi.begin() vi.end()。迭代器
	notl  适配器(函数适配器)
	
*/

标准库中的数据区间表示;

默认使用左闭右开区间: [ )
表示c.end() 将不指向任何数据

容器分类

c++ STL 001 基本概念_第2张图片

你可能感兴趣的:(C++,c++,算法)