3.2标准库vector

标准库vector

vector是类模板,用来表示相同类型对象的集合,因此也叫容器

1.定义和初始化vector对象

①vector对象有以下几种初始化方法:

  • 直接初始化:
vector<int> v1(10,1);  //v1包含10元素,全是1
  • 拷贝初始化:
vector<int> v2(v1); //拷贝初始化,用v1来初始化v2
  • 默认初始化:
vector<int> v3; //默认初始化,v3为空
  • 列表初始化:
vector<int> v4{1,2,3}; //列表初始化,v4包含三个元素,分别为1,2,3
vector<string> v5={"ab","bc"}; //列表初始化,包含2个字符串"ab"和"bc"
  • 值初始化:
vector<int> v6(10); //值初始化,包含10个值初始化为0的元素

②列表初始值还是元素数量

初始化的真实含义依赖于传递初始值用的是花括号还是圆括号。 用一个整数来初始化vector时,整数的含义可能是对象的容量或者是元素的值,通过花括号或圆括号的使用可以区分。

vector<int> v1(10); //值初始化,10个为0的元素
vector<int> v2{10}; //列表初始化,一个元素,值是10
vector<int> v3(10,1); //直接初始化,10个元素为1
vector<int> v4{10,1}; //列表初始化,有10和1两个元素

2.vector操作

2.1vector对象操作

①vector常用操作

  • v.empty() 如果v不含有任何元素,返回真
  • v.size() 返回v中元素的个数
  • v.push_back(t) 向v的尾端添加一个值为t的元素
  • v[n] 返回v中第n个位置上元素的引用
  • v1=v2 用v2总元素的拷贝替换v1中的元素
  • v1==v2 v1和v2相等为真
  • v1!=v2
  • <,<=,>,>= 字典顺序比较

②向vector对象中添加元素

对vector初始化的方式适用于以下三种情况:

  • 初始值已知且数量较少
  • 初始值是另一个vector对象的副本
  • 所有元素的初始值都一样

但是,常见情况是创建vector时不知道其元素个数和值,或者总量很大且各不相同,这是初始化会很繁琐,对此来说,更好的处理方式是:先创建一个vector,然后利用push_back(尾插法)向其中添加元素。

2.2vector对象元素操作

①如果要处理vector对象中中所有元素,用范围for语句

例如,打印vector中每个元素

vector<string> v{"aa","bb","cc"};
for (auto s : v) {
    cout << s << " ";
}

②利用下标运算符

vector的empty和size返回的类型也是size_type,要使用size_type,需先指定它是由那种类型定义的。如:

vector<int>::size_type; //正确
vector::size_type; //错误

跟string一样,使用下标运算符,返回的是vector元素的引用。并且使用下标运算符有两个前提条件:

  • vector对象不为空
  • 下标范围大于等于0且小于v.size()

需要注意的是vector对象(包括string对象)的下标运算符可用于访问已存在的元素,而不能用于添加元素。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值