vector的使用

一、vector的简单介绍

vector是c++的STL提供的一个已经封装好的容器,可以理解为一个可变长的数组,vector的底层就是一个会自动扩容的顺序表吗,其中创建和增删查改等等都已经实现好了,并且也完成了封装。

#inclde <vector> // 需要包含的头文件

int main()
{
   
    //1.名字为a1的int型可变长数组
    vector<int> a1;

    //2.大小为N,里面的值默认为0
    vector<int> a2(N);

    //3.大小为N的vector数组,创建了N个vector数组
    vector<int> a3[N];

    //4.大小为N,初始值为2
    vector<int> a4(N, 2);

    //5.初始化列表的创建方法
    vector<int> a5 = {1, 2, 3, 4, 5};

    //6.也可以存字符串,vector可以存放所有的数据类型
    vector<string> a6;

    //7.可以存结构体
    vector<node> a7;

    //8.二维可变长数组
    vector<vector<int>> a8;
    
    return 0;
}

二、vector内部函数的使用

1.size/empty

//size的使用
//empty:返回顺序表是否为空,(是一个bool类型的返回值)
//如果为空返true,否则返回false

void text_size()
{
    //一维数组
    vector<int> a1(6, 8);
    for(int i = 0; i < a1.size(); i ++)
        cout << a1[i] << " ";
    cout << endl;
    
    //二维数组
    vector<vector<int>> a2(3, vector<int>(4, 5));
    for(int i = 0; i < a2.size(); i ++)
    {
        //这里的a2相当于一个vector<int> a(4, 5)
        for(int j = 0; j < a2.size(); j ++)
        {
            cout << a2[i][j] << " ";
        }
        cout << endl;
    }
}

2.begin/end

//begin/end
//begin:返回起始位置的迭代器(左开)
//end:返回终点位置的下一个位置的迭代器(右闭)

void test_it()
{
    vector<int> a(10, 1);
    //迭代器类型为vector<int>::iterator,一般使用auto简化
    for(auto it = a.begin(); it != a.end(); it ++)
    {
        cout << *it << " ";
    }
    cout << endl;
    //使用范围for
    for(auto x : a)
    {
        cout << x << " ";
    }
    cout << endl;
}

3.push_back/pop_back

//尾部增删元素

void test_io()
{
    vector<int> a;
    //尾插
    a.push_back(1);
    //尾删
    a.pop_back();
}

4.front/back

//front:返回首元素
//back:返回尾元素
void test_fb()
{
    vector<int> a(5);
    for(int i = 0; i < 5; i ++)
    {
        a[i] = i + 1;
    }
    cout << a.front() << " " << a.back() << endl;
}

5.resize

//resize:修改vector大小
//1.如果大于原始的大小,多出来的位置填上默认值,一般是0
//2.如果小于原始的大小,相当于把原来的元素删除

void test_resize()
{
    vector<int> a(5, 1);
    a.resize(10);
    a.resize(3);
}

6.clear

//clear清空

void test_clear()
{
    vector<int> a(5, 1);
    a.clear();
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值