美文网首页
C++ STL vector详解

C++ STL vector详解

作者: Ivan_Lan | 来源:发表于2018-11-27 21:04 被阅读19次

一.解释:

vector(向量):是一种顺序容器,事实上和数组差不多,但它比数组更优越。一般来说数组不能动态拓展,因此在程序运行的时候不是浪费内存,就是造成越界。而vector正好弥补了这个缺陷,它的特征是相当于可分配拓展的数组,它的随机访问快,在中间插入和删除慢,但在末端插入和删除快。

二.用法:

1.头文件

#include <vector> 

2.定义方式

a) vector<int>v1;//vector元素为 int 型  
b) vector<string>v2;// vector元素为string型  
c) vector<node>v3;//入队元素为结构体型,结构体可以自行定义

vector<int>::iterator it;//定义一个迭代器

3.常用操作

v1.push_back()   //在数组的最后添加一个数据
v1.pop_back()    //去掉数组的最后一个数据 
v1.front()     //返回第一个元素(栈顶元素)
v1.begin()           //得到数组头的指针,用迭代器接受
v1.end()             //得到数组的最后一个单元+1的指针,用迭代器接受
v1.clear()        // 移除容器中所有数据
v1.empty()         //判断容器是否为空
v1.erase(pos)        //删除pos位置的数据
v1.erase(beg,end)// 删除[beg,end)区间的数据
v1.size()         //回容器中实际数据的个数
v1.insert(pos,data) //在pos处插入数据

三.例子

#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;

int main()
{
    vector <int> v;                            //定义vector
    vector<int>::iterator it;                 //定义一个vector迭代器
    for(int i = 10; i >= 1; i--)              //插入数据
        v.push_back(i);
    cout<<"输出:";
    for(it=v.begin();it!=v.end();it++)       //输出迭代器的值
        cout<<*it<<" ";
    cout<<endl;
    it-=1;
    cout<<"最后一个的值为:"<<*it<<"     "<<endl;
    v.erase(it);                             //删除最后一个元素
    cout <<"元素个数:" <<v.size() << endl;    //输出元素个数
    sort(v.begin(), v.end());                    //vector排序
    cout<<"排序后:";
    for(it=v.begin();it!=v.end();it++)            //输出vector元素
        cout << *it << " ";
    cout<<endl;
    v.insert(v.begin(),100) ;                 //在pos位置插入一个elem
    cout<<"第一个元素为:" <<v.front()<<endl;//输出第一个元素
    v.pop_back();                         //去掉最后一个元素
    cout << "元素个数:" <<v.size() << endl;//输出元素个数
    v.clear();                                //vector清空
    cout <<"清空后元素个数:" << v.size() << endl;    //输出元素个数
    return 0;
}

参考:
C++ STL vector详解

相关文章

  • C++ STL vector详解

    一.解释: vector(向量):是一种顺序容器,事实上和数组差不多,但它比数组更优越。一般来说数组不能动态拓展,...

  • #拖延症# 需要看的文章的记录

    C++ 对vector等STL标准容器进行排序操作--csdn该篇文章通过对vector排序的总结,明白stl是一...

  • C++ STL 之 vectot(三)

    今天我们继续更新 C++ STL 中 vector 容器的使用 vector 容器增加元素 vector 容器增加...

  • C++ STL 之 vectot(四)

    今天我们继续更新 C++ STL 中 vector 容器的使用 vector 容器删除元素 使用 clear() ...

  • 标准模板库-vector

    标准模板库-vector 1. vector简介 vector为C++的STL中的模板数组容器。在使用时需要包含#...

  • C++ STL 之 vectot(二)

    今天我们继续更新 C++ STL 中 vector 容器的使用 vector 迭代器使用 与 array 类似,v...

  • C++ vector用法初记

    C++ vector用法小记 最近在leetcode上面做题,STL的vector用的甚多,这里稍微的总结下vec...

  • C++ STL vector

    vector是一个类模板,模板本身不是类或函数(类模板和函数模板),相反可以将模板看作编译器生成类或函数的一份说明...

  • C++ Vector用法

    vector 是向量类型,它可以容纳许多类型的数据,称其为容器。vector 是C++ STL的一个重要容器,使用...

  • STL | vector的使用(续)

    写在前面: 很久之前写过关于C++ STL中vector容器的基本用法,最近涉及到了vector容器元素的删除,发...

网友评论

      本文标题:C++ STL vector详解

      本文链接:https://www.haomeiwen.com/subject/yvwnqqtx.html