当前位置:   article > 正文

STL入门指南_迭代器是泛化的指针

迭代器是泛化的指针

c++标准库包含STL,STL包含六大部件

image-20210421223712259

STL

standard template library 标准模板库

C++的含义:C语言+类+模板

STL有6大组件:

容器、算法、迭代器、适配器、分配器、仿函数

容器(container)

  1. 系统封装好的数据结构
  2. 泛型编程思想,每种数据结构都能装任意类型
  3. 主要是对数据结构增删改查的操作

算法(algorithm)

  1. 系统封装好的算法(如sort排序算法)
  2. 一个算法适用多种容器(泛型编程思想)

迭代器(Iterator)

迭代器相当于指针

迭代器告诉算法要执行的范围(在容器中)

分配器(allocator)

对容器的内存进行管理分配(例如vector容器的自动扩充,自动缩容等)

仿函数(functor)

仿函数:结构体或类要实现函数的功能,就要重载function call 操作符 ()

#include <iostream>
using namespace std;
class Stu{
public:
	//重载()操作符 
    //只有函数返回true时,a的优先级才大于b 
	bool operator () (int a,int b){
        
		return a>b; //此时当a>b时返回true,那么数值越大优先级越高
        
        //return a<b; 此时当a<b时返回true,那么数值越小优先级越高
	}
};
int main()
{
	 Stu s;
	 cout << s(1,2) << endl;//0
	 cout << s(2,1) << endl;//1
	return 0;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20

容器(container)

容器类自动申请和释放内存,无需new和delete操作

image-20210403193155035

结构及分类

Sequence Containers

序列式容器:按照放入元素的顺序进行排列

Array:定长数组

Vector:不定长数组

Deque:双端队列

List:双向链表

Forward-List:单向链表

Associative Containers

关联式容器:元素是以键值对的形式存在(key/value),通过key可以快速查找,因此这种容器适合大量查找

关联式容器又分为Orde

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/731162
推荐阅读
相关标签
  

闽ICP备14008679号