首先我们来了解一下什么是STL
STL 将“在数据上执行的操作”与“要执行操作的数据分开”,分别以如下概念指代:
-
容器:包含、放置数据的地方。
-
迭代器:在容器中指出一个位置、或成对使用以划定一个区域,用来限定操作所涉及到的数据范围。
-
算法:要执行的操作。
标准模板库包含了序列容器(sequence containers)与关系容器(associative containers)。
序列容器包括vector,list,forward_list,deque和array等。
关联容器包括set,multiset,map,multimap,unordered_set,bitset和valarray等。
迭代器
迭代器是泛化的指针,通过使用迭代器,开发者可以操作数据结构而无需关心其内部实现。根据迭代器的操作方式的不同,迭代器分为五种:
-
输入迭代器
-
输出迭代器
-
前向迭代器
-
双向迭代器
-
随机访问迭代器
算法
STL提供了一些常见 的算法,如排序和搜索等。这些算法与数据结构的实现进行了分离。因此,用于也可对自定义的数据结构使用这些算法,只需让这些自定义的数据结构拥有算法所预期的迭代器。
函数对象
狭义的函数对象即重载了操作符()的类的实例,而广义来讲所有可用 x(...) 形式调用的 x 都可称为函数对象、或曰可调用对象。
适配器
适配器(Adaptor)为一个模板类,用于提供接口映射。
这是自己写的第一个list
#include <iostream>
//STL 封装
#include "myList.h"
#include <string>
using namespace std;
int main()
{
list<string> mylist; //实例化过程,创建一个模板类的对象
//链表的插入
mylist.push_back("酥");
mylist.push_back("是");
mylist.push_back("男孩");
mylist.push_front("丑");
//迭代器
list<string>::iterator myIter;
//mylist.begin()返回的是一个singleList<T>* 指针
for (myIter = mylist.begin(); myIter != mylist.end(); myIter++)
{
cout << *myIter; //成功打印,返回数据才是根本
}
//mylist.printList();
cout << endl;
system("pause"); //防止闪屏
return 0;
}
感觉还不错,有兴趣的可以自己去尝试的运行
UP在主页上传了一些学习C/C++编程的视频教程,有兴趣或者正在学习的小伙伴一定要去看一看哦!会对你有帮助的~
加群1083227756!!!
分享(源码、项目实战视频、项目笔记,基础入门教程)
欢迎转行和学习编程的伙伴,利用更多的资料学习成长比自己琢磨更快哦!