Standard Template Library(标准模板库)
从广义上分为容器(container),算法(algorithm),迭代器(iterator)
优点
- STL是C++的一部分不需要额外安装
- STL的重要特点是数据与结构分离
- 不需要具体了解实现过程,只要能够熟练使用即可
- 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;
}
/*
不难看出,算法与容器的结合需要迭代器帮助
因为迭代器的存在,使得算法与容器可以分开设计
*/
原文链接: https://www.cnblogs.com/renboyu/p/13150265.html
欢迎关注
微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍;
也有高质量的技术群,里面有嵌入式、搜广推等BAT大佬
原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/330586
非原创文章文中已经注明原地址,如有侵权,联系删除
关注公众号【高性能架构探索】,第一时间获取最新文章
转载文章受原作者版权保护。转载请注明原作者出处!