[C++]STL理论基础

Standard Template Library(标准模板库)

从广义上分为容器(container),算法(algorithm),迭代器(iterator)


优点

  1. STL是C++的一部分不需要额外安装
  2. STL的重要特点是数据与结构分离
  3. 不需要具体了解实现过程,只要能够熟练使用即可
  4. STL具有高可重用性,高性能,高移植性,跨平台的优点

容器

容器内含有元素

容器支持嵌套

容器分为序列式容器与关联式容器

所谓序列式容器,即以线性排列(类似普通数组的存储方式)来存储某一指定类型(例如 int、double 等)的数据,根据元素进入容器的时间或地点等等来决定元素位置,需要特殊说明的是,该类容器并不会自动对存储的元素按照值的大小进行排序。

容器已有既定规则,进入容器的元素位置不由时机或地点等决定

迭代器

迭代器类似于指针

实际上,迭代器是一个类,这个类封装了指针的基本操作

算法

通过有限步骤,解决问题


#include<iostream>
using namespace std;
//算法,负责统计某元素个数
int MyCount(int*start,int*end,int val) {
	int num = 0;
	while (start != end) {
		if (*start == val) {
			num++;
		}
		start++;
	}
	return num;
}

int main() {

	//数组相当于容器,指针相当于迭代器
	int arr[] = { 0,4,6,5,9,56,12,4,4 };
	int* begin = arr; //迭代器开始位置
	int* end = &arr[sizeof(arr) / sizeof(int)]; //迭代器结束位置,最后一个元素的下一个位置
	int val = 4;
	int num = MyCount(begin, end, 4);
	cout << "数组所含"<<val<<"元素为:" <<num <<"个"<< endl;
	return 0;
}
/*
不难看出,算法与容器的结合需要迭代器帮助
因为迭代器的存在,使得算法与容器可以分开设计
*/
发布了18 篇原创文章 · 获赞 2 · 访问量 233

猜你喜欢

转载自blog.csdn.net/renboyu010214/article/details/104416862