- 什么是STL?
答:STL(Standard Template Library),即标准模板库,是一个具有工业强度的、高效的C++程序库。它被容纳于C++标准程序库中,是ANSI/ISO C++标准中最新的也是极具革命性的一部分。该库包含了诸多在计算机科学领域里所常用的基本数据结构和基本算法。为广大C++程序员们提供了一个可扩展的应用框架,高度体现了软件的可复用性。这种现象有些类似于Microsoft Visual C++中的MFC(Microsoft Foundation Class Library),或者是Borland C++ Builder中的VCL(Visual Component Library),对于此二者,大家一定不会陌生吧。 - 什么时候用STL
如果,有的时候,你要在程序中用到堆、栈、队列、链表等一些基本的算法,而你又实在不想自己去实现数据结构教科书中那些繁琐的算法,那么你就可以考虑使用STL。
另外,STL作为一种标准,便于交流,掌握它,一方面可以让你写的程序,易于让别人理解,另一方面你也能够比较容易地理解别人写的程序。
3.基本概念:
1) 容器:可以把它理解为存放数据的地方,常用的一些容器有 链表(list) 栈(stack) 动态数组 (vector) 双端队列(deque) 队列(queue) 映射(map)
2)游标(iterator):可以把它理解为指针类型,STL中的许多函数需要用到它们作为参数
2) 算法:它们通常需要与容器和游标配合使用,使用它们,你可以方便地对容器中的数据进行各种常见的操作,如排序操作,寻找最大元素的操作等;
4.六大组件:
1)容器:list、vector
2)适配器:栈、队列、priority_queue
3)算法;
4)函数对象:Date d; d();
5)空间配置器;
6)迭代器:类似于指针;
5.容器模板的使用
大致有下面6个步骤:
1).添加相应的头文件(如#include)(注意,没有.h)
2).添加std命名空间(用using namespace std;)
3).赋予模板具体的使用类型(如typedef list LISTSTR;)
4).实例化模板(如 LISTSTR test; )
5).实例化游标(如 LISTSTR::iterator i; )
6).通过迭代器对象访问模板对象,例如
// 逐个输出链表test中的元素
for(i=test.begin();i!=test.end();++i)
cout<<*i<<” “;
6.容器模板中的常用函数
assign() 赋值
empty() 容器为空则返回非0值
erase() 删除指定位置或指定范围内的元素
push_front() 从容器头部插入元素
push_back() 从容器尾部插入元素
pop_front() 删除第一个元素
pop_back() 删除最后一个元素
back() 返回最后一个元素的引用
front() 返回第一个元素的引用
begin() 返回指向第一个元素的游标(与迭代器配合使用)
end() 返回指向最后一个元素的后一个位置的游标(最后1个元素再加1)(与迭代器配合使用)
STL总结
最新推荐文章于 2021-02-24 22:26:52 发布