首页 > 代码库 > STL《1》STL简介及vector容器的使用

STL《1》STL简介及vector容器的使用



C++STL(Standard Template Library 标准模板库)是通用类模板和算法的集合,它提供给程序员一些标准的的数据结构的实现,如:queues(队列)、lists(链表)、stacks(栈)等


STL由六大组件组成
容器(Container)
算法(Algorithm)
迭代器(Iterator)
仿函数(Function object)
适配器(Adaptor)
空间配制器(allocator)


C++ Vector(向量容器)
Vector是一个线性顺序结构。相当于数组,但其大小可以不预先指定,并且自动扩展。它可以像数组一样被操作,由于它特性我们完全可以将vector 看作动态数组。


应用实例:定义一个Vector并且对其赋值,然后打印值

<span style="color:#000000;">#include <iostream>
#include <vector>

using namespace std;

void main()
{
    //定义一个向量容器v1
    vector<int> v1(5);

    //对向量容器复制
    for(int i=0; i<5; i++)
    {
        v1[i] = i + 1;
    }

    //定义向量容器v2
    vector<int> v2(5);

    v2 = v1;//将向量容器v1的值赋值给v2

    //输出向量容器的值
    for(int i=0; i<5; i++)
    {
        cout<<v2[i]<<endl;
    }

    system("pause");
}</span>


执行结果


扩展容器的大小

<span style="color:#000000;">#include <iostream>
#include <vector>

using namespace std;

void main()
{
    //定义一个向量容器v1
    vector<int> v3(0);

    //扩展v3的大小,并且赋值
    v3.push_back(3);
    v3.push_back(4);
    v3.push_back(5);

    //得到v3的大小
    int len = v3.size();

    //输出v3的值
    for(int i=0; i<len; i++)
    {
        cout<<v3[i]<<endl;
    }

    system("pause");
}</span>


执行结果:



使用vector处理教师信息

<span style="color:#000000;">#include <iostream>
#include <string>
#include <vector>

using namespace std;

//定义一个Teacher结构体
struct Teacher
{
    string Name;
    int Age;
};

void main()
{
    //定义4个Teacher对象
    struct Teacher t1, t2, t3;

    //给Teacher对象赋值
    t1.Name = "Tom";
    t1.Age = 25;

    t2.Name = "Mike";
    t2.Age = 32;

    t3.Name = "Lisa";
    t3.Age = 24;

    //定义一个存放Teacher结构的容器v3
    vector<Teacher*> v3(0);

    //扩展v3的大小,并且赋值
    v3.push_back(&t1);
    v3.push_back(&t2);
    v3.push_back(&t3);

    //得到v3的大小
    int len = v3.size();

    //输出老师的信息
    for(int i=0; i<len; i++)
    {
        struct Teacher *temp = v3[i];

        cout<<temp->Name<<"\t"<<temp->Age<<endl;
    }

    system("pause");
}</span>

执行结果


STL《1》STL简介及vector容器的使用