18. C++中STL简介

标准模板库STL

什么是STL?
              ― STL,即:Standard Template Library,是C++的一部分;
              ― STL是常用数据结构和算法的集合;
              ― STL的目标是标准化组件,提高开发效率和程序可靠性;

18. C++中STL简介_第1张图片

STL库作为C++的一部分与编译器一同被发布
        STL主要由以下3个部分组成
             ―容器(Container):管理数据的集合
             ―算法(Algorithm):处理集合内的元素
             ―迭代器(Iterator):遍历集合内的元素

 

STL中的容器

1. 容器中存放的都必须是值而不能是引用;
        2. 容器内部实施的是值拷贝操作;
        3. 容器中可以存放指针作为数据元素;

注:STL中的容器其实就是数据结构中的链表,栈,队列和哈希表等结构。

线性表的典型操作
             ―size:获取当前容器中的元素数目
             ―insert:在当前元素前插入新元素
             ―erase:删除当前元素
             ―empty:判断当前容器是否为空
             ―front:获取第一个元素
             ―back:获取最后一个元素
             ―…

#include 
#include 
#include 

using namespace std;

int main(int argc, char *argv[])
{
    vector vi(10);
    
    cout<<"vi size: "< vin;
    
    vin = vi;
    
    vi.resize(0);
    
    cout<<"Elements in vin:"<

编译运行结果如下:

18. C++中STL简介_第2张图片

 

栈性质:后进先出(LIFO)

18. C++中STL简介_第3张图片

 

队列性质:先进先出(FIFO)

18. C++中STL简介_第4张图片

 

栈和队列的典型操作
               ―push:无返回值,将元素压栈(队列)
               ―pop:弹出栈(队列)第一个元素
               ―top:返回栈第一个元素
               ―front:返回队列第一个元素
               ―…

#include 
#include 
#include 
#include 

using namespace std;

void StackUsage()
{
    cout<<"Stack Usage"< s;
    
    for(int i=0; i<5; i++)
    {
        s.push(i/100.0);
    }
    
    cout<<"Elements in s:"< q;
    
    for(int i=0; i<5; i++)
    {
        q.push(i + 1);
    }
    
    cout<<"Elements in q:"<

编译运行结果如下:

18. C++中STL简介_第5张图片

 

STL中的迭代器

STL中的迭代器是遍历容器的“标准”方式,迭代器可以理解成一个指向元素的“指针”。

18. C++中STL简介_第6张图片

#include 
#include 
#include 

using namespace std;

int main(int argc, char *argv[])
{
    list l;
    
    cout<<"l size: "<::iterator current = l.begin(); 
    
    cout<<"Elements in l:"<::iterator p = l.begin(); p != l.end(); p++)
    {
        cout<<*p<

编译运行结果如下:

18. C++中STL简介_第7张图片

 

STL中的算法

STL中提供了大多数常用的泛型算法。如:遍历,排序,反转,合并等等。算法头文件:

#include 
#include 
#include 
#include 

using namespace std;

void current(int& v)
{
    cout<& vec)
{
    cout<<"Elements in vector:"< v(10);
    
    for(int i=9; i>=0; i--)
    {
        v[i] = 9 - i;
    }
        
    print(v);
    
    sort(v.begin(), v.end(), compare);
    
    print(v);
    
    cout << "Press the enter key to continue ...";
    cin.get();
    return EXIT_SUCCESS;
}

编译运行结果如下:

18. C++中STL简介_第8张图片

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(c++)