STL(1) STL基础

发布时间 2023-09-01 02:12:06作者: LiviaYu

标准库和STL

STL代表standard template library,STL是标准库的一个子集,大概占有其中50-70%

STL的六大部件

  1. 容器 containers
  2. 分配器 allocators
  3. 算法 algorithms
  4. 迭代器 iterators
  5. 适配器 adapters
  6. 仿函数 functors

容器需要放东西,需要分配内存,所以背后使用分配器来支持这个容器的内存管理
算法是一系列操作容器外部函数,是另外一组,并不在容器之中。这里和面向对象不同,是一种泛型编程的概念
算法和容器的桥梁:迭代器,一种泛化的指针
仿函数:作用就像函数
适配器:帮助我们转换,比如容器适配器,将容器转换为我们需要的结构

部件的使用:

#include<algorithm>
#include<vector>
#include<functional>
#include<iostream>

using namespace std;

int main()
{
	int ia[6] = { 27,210,12,47,109,93 };
	vector<int, allocator<int>> vi(ia, ia + 6);
	cout << count_if(vi.begin(), vi.end(),
		not1(bind2nd(less<int>(), 40)));
	return 0;
}

左闭右开区间,是说,标准库规定,所有容器(不一定是连续空间)这样来表现头尾:
begin()表示元素第一个起点,end()指的是最后一个元素的下一个