C 容器和迭代器 ppt

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

vector
vector是一个类模板(class template)。 声明从类模板产生的某种类型的对象,需 要提供附加信息。以vector为例,声明 vector时必须说明vector保存何种对象的 类型: vector<int> ivec; vector<Sales_item> Sales_vec;
迭代器(itபைடு நூலகம்rator)
每种容器都定义了自己的迭代器类型,如 vector: vector<int>::iterator iter; 这条语句定义了一个名为iter的变量,其 类型是由vector<int>定义的iterator类型。
begin和end操作
每种容器都定义了一对命名为begin和end 的函数,用于返回迭代器。 如果容器不为空,begin返回的迭代器指 向第一个元素。如:
Outline
标准库vector类型 迭代器简介
vector
vector是同一种类型的对象的集合,每个 对象都有一个对应的整数索引值。我们把 vector称为容器,是因为它可以包含其它 对象。一个容器中的所有对象必须是同一 种类型的。 使用vector之前,必须包含相应的头文件: #include <vector>
for (vector<int>::iterator iter = ivec.begin(); iter!=ivec.end(); iter++) { *iter = 0; }
vector<int>::iterator iter = ivec.begin();
end返回的迭代器指向vector的末端元素 的下一个位置(一个不存在的元素)。 如果容器为空,begin返回的迭代器与end 相同。
解引用操作
迭代器类型可以使用 解引用操作符 (*操 作符)来访问迭代器指向的元素。 假设iter指向vector对象ivec的第一个元素, 则以下两个语句的含义相同。
vector对象的操作
v.empty() 如果v为空,返回true,否则返回 false v.size() 返回v中元素的个数 v.push_back(t) 在v的末尾增加一个值为t的 元素 v[n] 返回v中位置为n的元素 v1 = v2 把v1的元素替换为v2元素的副本 v1 == v2 如果v1与v2相等,返回true
vector的下标操作
vector的元素位置从0开始。 可以使用下标运算符来获取元素。 下标运算符仅能获取已存在的元素,试图对不 存在的元素进行操作时产生运行时错误。 vector<int> ivec; //empty vector for (vector<int>::size_type ix=0; ix!=10; ix++) ivec[ix] = ix; //disaster: ivec has no elements.
ivec[0] = 0; *iter = 0;
end返回的迭代器不指向任何元素,因此 不能对其进行解引用操作。
自增和比较
可以使用自增运算符(++)向前移动,指 向下一个元素。 用==和!=来比较两个迭代器,如果它们指 向同一个元素,则它们相等,否则就不相 等。
用迭代器编写循环
相关文档
最新文档