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>

执行结果


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值