容器vector

1. Vector不是一种数据类型,而只是一个类模板,可以用来定义任意多种数据类型。

vector<int> ivec; //ivec holds objects of type int

vector<Sales_item> Sales_vec; //holds Sales_items


2. vector对象的定义和初始化

vector<T> v1; //vector保存类型为T的对象,默认构造函数v1为空

vector<T> v2(v1); //v2是v1的一个副本

vector<T> v3(n, i); //v3包含n个值为i的元素

vector<T> v4(n); //v4含有值初始化的元素的n个副本


3. 关键概念:vector的动态增长

虽然可以对给定元素个数的vector对象预先分配内存,但更有效的方法是先初始化一个空vector对象,然后再动态地增加元素。


4. vector对象的操作

v.empty() 如果v为空,返回true,否则返回false

v.szie() 返回v中元素的个数

v.push_back(t) 在v的末尾增加一个值为t的元素

v[n] 返回v中位置为n的元素

v1 = v2 把v1的元素替换为v2中元素的副本

v1 == v2 如果v1和v2相等,返回true

!=, <, <=, >, >=


5. vector的下标操作

for(vector<int>::size_type ix = 0; ix != ivec.size(); ++ix)

{

ivec[ix] = 0; 

}

注:由于vector的动态增长,所以倾向于在每次循环测试size的当前值,而不是在进入循环前,存储size值的副本。


6. 下标操作的注意点

下标操作只能获取已存在的元素。

仅能对确知已存在的元素进行下标操作,试图获取不存在的元素必然产生运行时错误


7. 迭代器(iterator)

1). 迭代器是一种检查容器内元素并遍历元素的数据类型,标准库为每一种标准容器定义了一种迭代器类型。

2). 定义: vector<int> iterator iter;

3). begin和end操作

每个容器都定义了一对命名为begin和end的函数,用于返回迭代器

begin返回的迭代器指向第一个元素

end返回的迭代器指向vector的“末端元素的下一个”,通常称为超出末端迭代器,表明它指向了一个不存在的元素

如果vector为空,begin返回的迭代器与end返回的迭代器相同。

4). 迭代器解运算

*操作符 返回迭代器所指向的元素

5). const_iterator 只能读取容器内元素,但不能改变其值











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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值