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>

执行结果

时间: 2024-11-25 02:46:12

STL《1》STL简介及vector容器的使用的相关文章

STL学习二:Vector容器

1.Vector容器简介 vector是将元素置于一个动态数组中加以管理的容器. vector可以随机存取元素(支持索引值直接存取, 用[]操作符或at()方法,这个等下会详讲). vector尾部添加或移除元素非常快速.但是在中部或头部插入元素或移除元素比较费时. 2.vector对象的默认构造 vector采用模板类实现,vector对象的默认构造形式 vector<T> vecT; vector<int> vecInt;          //一个存放int的vector容器

【C++】STL,vector容器操作

C++内置的数组支持容器的机制,但是它不支持容器抽象的语义.要解决此问题我们自己实现这样的类.在标准C++中,用容器向量(vector)实现.容器向量也是一个类模板.标准库vector类型使用需要的头文件:#include <vector>.vector 是一个类模板.不是一种数据类型,vector<int>是一种数据类型.Vector的存储空间是连续的,list不是连续存储的. 一. 定义和初始化vector< typeName > v1;       //默认v1为

STL Vector容器

STL Vector容器 Vector容器简介 vector是将元素置于一个动态数组中加以管理的容器.        vector可以随机存取元素(支持索引值直接存取, 用[]操作符或at()方法,这个等下会详讲).         vector尾部添加或移除元素非常快速.但是在中部或头部插入元素或移除元素比较费时        头文件:#include<vector> vector对象的默认构造 vector采用模板类实现, vector对象的默认构造形式: vector<T>

C++ STL vector容器学习

STL(Standard Template Library)标准模板库是C++最重要的组成部分,它提供了一组表示容器.迭代器.函数对象和算法的模板.其中容器是存储类型相同的数据的结构(如vector,list, deque, set, map等),算法完成特定任务,迭代器用来遍历容器对象,扮演容器和算法之间的胶合剂. 模板类vector 在计算中,矢量(vector)对应数组,它的数据安排以及操作方式,与array非常类似.在C++中,使用vector模板类时,需要头文件包含#include<v

标准模板库(STL)学习探究之vector容器

标准模板库(STL)学习探究之vector容器  C++ Vectors vector是C++标准模板库中的部分内容,它是一个多功能的,能够操作多种数据结构和算法的模板类和函数库.vector之所以被认为是一个容器,是因为它能够像容器一样存放各种类型的对象,简单地说,vector是一个能够存放任意类型的动态数组,能够增加和压缩数据.为了可以使用vector,必须在你的头文件中包含下面的代码:#include <vector>构造函数. Vectors 包含着一系列连续存储的元素,其行为和数组类

带你深入理解STL之Vector容器

C++内置了数组的类型,在使用数组的时候,必须指定数组的长度,一旦配置了就不能改变了,通常我们的做法是:尽量配置一个大的空间,以免不够用,这样做的缺点是比较浪费空间,预估空间不当会引起很多不便. STL实现了一个Vector容器,该容器就是来改善数组的缺点.vector是一个动态空间,随着元素的加入,它的内部机制会自行扩充以容纳新元素.因此,vector的运用对于内存的合理利用与运用的灵活性有很大的帮助,再也不必因为害怕空间不足而一开始就配置一个大容量数组了,vector是用多少就分配多少. 要

STL之vector容器的实现框架

说明:本文仅供学习交流,转载请标明出处,欢迎转载. 实现vector容器的思路等同于实现一个动态数组,以下我们參照源代码的相关资料,给出一个vector容器的大致框架,仅仅有声明,没给出详细的实现. 代码的框架注意从下面几个方面给出: (1)空间分配属性,因为是对外封闭的,故为procted:        (2)共同拥有訪问的属性,可供外部用户訪问,定义为public:        (3)容器的构造函数与析构函数:        (4)vector容器的插入操作.        (5)vec

STL 笔记(一): 顺序容器 vector、list、deque

STL 容器类 C++ STL 体现了泛型编程的思想,广义上分为: 容器 (Container),迭代器 (Iterator),算法 (Algorithm).容器类可以包含一组相同类型或不同类型的对象,包含相同类型对象时称为同类容器类,包含不同类型对象时,称为异类容器类.容器类库共包含 10 种容器,分为三类: 顺序容器:向量 (vector).双端队列 (deque).列表 (list); 关联容器:集合 (set).多重集合 (multiset).映射 (map)和多重映射 (multima

STL源码剖析(4):容器(vector)

容器是很多人对STL的第一印象,vector,stack,queue,set,map等等都是容器. 这里先介绍 STL中的序列式容器. 所谓序列式容器,其中的元素可序(ordered),但未必有序(sorted).C++ 本身提供了一个序列式容器--数组(array),STL中还提供了向量(vector),链表(list),堆栈(stack),队列(queue),优先队列(priority queue)等,其中stack和queue只是将deque(双端队列)设限而得到的,技术上可以被归为一种配