栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C++中vector使用方法

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C++中vector使用方法

目录
  • 1. 基本操作
  • 2. 算法
  • 3. 输出vector的中的元素(三种方法)

在C++中,vector是一个十分有用的容器,是一个能够存放任意类型的动态数组,能够增加和压缩数据。

vector的优点:
(1)可将容器中元素翻转、复制元素、找到元素值对应的位置
(2)迭代器可以按照不同的方式遍历容器
(3)可在容器的末尾增加或删除元素
(4)可在任意位置插入数据
与数组相比,容器在自动处理容量的大小时会消耗更多的内存,但能很好的调整存储空间大小。

1. 基本操作

(1) 头文件:

#include

(2) 创建vector对象:

vector array;

(3) 向量尾部插入/删除元素:

array.push_back(a); //尾部插入数字a
array.pop_back(); //删除向量的最后一个元素

(4) 使用下标访问元素:

array[0],array[1]......array[n]
array.at(i) //使用at(),当这个函数越界时会抛出一个异常

(5) 使用迭代器访问元素:

vector::iterator it;
for(it=array.begin();it!=array.end();it++)
    cout<<*it< 

(6) 插入元素:

array.insert(array.begin()+i,a); //在第i+1个元素前面插入a;

(7) 删除元素:

array.erase(array.begin()+2); //删除第3个元素
array.erase(array.begin()+i,array.end()+j); //删除区间[i,j-1],区间从0开始

(8) 向量大小: array.size();
(9) 清空: array.clear();
(10) 判空:

array.empty(); //当元素个数为0时返回true,否则为false

(11) 返回最后一个元素:array.back();
(12) 返回第一个元素:array.front();
(13) 返回内存中总共可以容纳的元素个数:array.capacity();
(14) 调整元素个数:

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

(15)扩充容量:

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

(16)两向量交换:

a.swap(b); //将a中的元素和b中的元素进行整体性交换

(17)向量的比较:

向量的比较操作 == != >= <= > <  
a==b;

重要说明:vector的元素不仅仅可以是int,double,string,还可以是结构体,但是要注意:结构体要定义为全局的,否则会出错。>重要说明:vector的元素不仅仅可以是int,double,string,还可以是结构体,但是要注意:结构体要定义为全局的,否则会出错。

2. 算法

注意:进行如下操作需要加头文件

#include

(1) 使用reverse将元素翻转:

reverse(array.begin(),array.end()); //将元素翻转,即逆序排列

注:在vector中,如果一个函数中需要两个迭代器,一般后一个都不包含.

(2) 使用sort排序:
默认升序:sort(array.begin(),array.end());
降序则调用: sort(array.begin(),array.end(),Comp);

bool Comp(const int &a,const int &b)
{
    return a>b;
}

(3) 复制向量的元素:

copy(a.begin(),a.end(),b.begin()+1); 
//把a中的从a.begin()(包括它)到a.end()(不包括它)的元素复制到b中,从b.begin()+1的位置(包括它)开始复制,覆盖掉原有元素

(4) 查找元素的位置:

find(a.begin(),a.end(),10); 
//在a中的从a.begin()(包括它)到a.end()(不包括它)的元素中查找10,若存在返回其在向量中的位置

3. 输出vector的中的元素(三种方法)
vector vecClass; 
int nSize = vecClass.size();   

//方法一(下标方式)打印vecClass 
for(int i=0;i    
   cout<    
   cout<::iterator it = vecClass.begin();it!=vecClass.end();it++)    
{    
    cout<<*it<<"   ";    
}    
cout<
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/994503.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号