C++ 标准模板库--vector使用方法

一、关于vector

    1.本质 可以理解为变长数组,即长度根据需要而自动改变的数组。

    2.常见用途 常用于普通数组会导致超内存情况下,或者用邻接表的方式储存图。

    3.优势 内存占用小,操作简单!

二、使用vector

    1.需要引用的头文件

#include<vector>

using namespace std;

    2.定义

    vector<typedef> name 其中typedef可以为任何基本类型,比如:

vector<int> name;
vector<double> name;
vector<char> name;
vector<node> name; //其中node为结构体类型。
vector<vector<int>> name;

   3.访问

   3.1 通过下标访问

   与普通数组的访问方法相同,注意下标仍然从0开始。

   3.2 通过迭代器访问

   迭代器可以看成类似指针的东西,其定义为

vector<typedef>::iterator it; //其中的typedef可以是任意数据类型如int、double等。

   3.3 访问实例

#include<stdio.h>
#include<vector>

using namespace std;

int main(){
    vector<int> vi;
    for(int i = 1;i <= 5;i++){
        vi.push_back(i);          //在 vi 的末尾添加元素 i 。
    }
    vector<int>::iterator it == vi.begin();
    for(int i = 0;i < 5;i++){
        printf("%d",*(it + i));
    }
    return 0;
}

   4.常用函数

   4.1 push_back

vector<int> vi;
vi.push_back(2);  //在 vi 的末尾添加元素

   4.2 pop_back

vector<int> vi;
vi.pop_back();  //在 vi 的末尾删除最后一个元素

   4.3 size

vector<int> vi;
int size = vi.size();  //返回 vi 中元素的个数

   4.4 clear

vector<int> vi;
vi.clear();  //清除 vi 中所有的元素。

   4.5 insert

vi.insert(vi.begin() + 2, -1);  //在 vi[2] 处插入 -1 。

   4.6 erase

//1. 删除单个元素

vi.erase(vi.begin() + 3);  //删除 vi[3] .



//2. 删除某一个区间中的元素(区间左开右闭)

vi.erase(vi.begin() , vi.begin() + 3);  //删除 vi[0] - vi[2] 。 

三、vector使用的实例

    PAT甲级 A1039   解题方法

    PAT甲级 A1047   解题方法

发布了17 篇原创文章 · 获赞 4 · 访问量 449

猜你喜欢

转载自blog.csdn.net/qq_39117553/article/details/104892865