总结vector容器的各种操作

本文介绍了C++标准库中的vector容器,包括如何定义、赋值不同类型的操作如push_back、assign、insert,以及查看数据、调整大小、内存管理和遍历容器的方法。同时,文章提到了不同类型的迭代器和异常安全性的差异。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

vector意思为矢量,其实和向量差不多

首先要包含头文件吧

#include<vector>

然后肯定要定义应该出来吧

vector<int> v;//<>里面写上里面的数据类型

一、赋值类型:将数据放入容器《下面有实例演示》

        1. v.push_back(10);//在最后加一个10

        2.v.assign(4, 2);//将v重置为4个2(会将之前的数据弄没)

        3.v.assign(m.begin(), m.end());//m为另一个容器,将起始迭代器(位置)与最后一个(自己想取的范围最后一个:注意不包括这个)告诉他会将v重置为那些数据

        4.v.insert(v.begin()+1,100);//这个意思是在第2的位置插入100

        5.v.insert(v.begin()+1,3,100);//这个意思是在第2的位置开始插入3个100

        6.v.insert(v.begin() + 1, b , b + 2);//注意b为数组,将b从0~1(2不包含)的元素插到1位置后的

二、查看数据的内容-------->有两种方法

(1)int a=v[0];//直接用[ ]加数字找 (前提v[ n ]存在,否则程序崩溃)

(2)int b=v.at(0);//at函数来查看(前提v.at(n)存在,否则程序崩溃)

                        ----->at()与[]有什么区别呢

  []和at()的区别在于[]不检查索引是否有效,而at()在遇到无效索引时会抛出out_of_range异常.

                就看要不要接异常了

(3)一些其他函数查看值

        v.back(); //返回v的最后一个元素

        v.front(); //返回v的第一个元素

三、分配内存操作

        1.v.resize(10); //将v的现有元素个数调至10个,多则删,少则补,其值随机

        2.v.resize(10,2); //将v的现有元素个数调至10个,多则删,少则补,其值为2

        3.v.reserve(100); //将v的容量(capacity)扩充至100

四、对vector的一下其他类型操作

        1.v.size(); //返回v中元素的个数;

        2.v.capacity(); //返回v在内存中总共可以容纳的元素个数

        3.v.clear(); //清空v中的元素

        4.v.empty(); //判断v是否为空,空则返回ture,不空则返回false

        5.v.pop_back(); //删除v向量的最后一个元素

        6.v.swap(b); //b为向量(就是vector开辟的),将v中的元素和b中的元素进行整体性交换

        7.v.begin();//返回起始迭代器位置

        8.v.end();//返回最后迭代器(没有数据!!!

        9.使用reverse_iterator反向迭代器

                (1)v.rend();//返回起始迭代器位置

                (2)v.regain();/返回最后迭代器(没有数据!!!

       10.v.erase(v.begin()+1,v.begin()+3); //删除a中第1个(从第0个算起)到第2个元素,删除数据

        

2.对v.insert的演示

v.insert(v.begin()+1,100);//这个意思是在第2的位置插入100

 v.insert(v.begin()+1,3,100);//这个意思是在第2的位置开始插入3个100

v.insert(v.begin() + 1, b , b + 2);//注意b为数组,将b从0~1的元素插到1位置后的

 遍历容器

for(vector<int>::iterator a=v.begin();a!=v.end();++a)

//正向迭代器 iterator    begin()指向第一个元素  end()指向最后一个元素的后一个位置

   {

    cout<<*a<<" ";//正常输出数据

   }

   cout<<endl;

for(vector<int>::reverse_iterator a=v.rbegin();a!=v.rend();++a)

//反向迭代器 reverse_iterator    rbegin()指向最后一个元素  rend()指向第一个元素的后一个位置

   {

    cout<<*a<<" ";//反向输出数据

   }

    return 0;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值