迭代器用法

你的CPoints是这个样子的吗?
class Point
{
public :
int x,y,z;

};

class CPoints
{
public:
Point first,second;

};

it_point->second.z
意思就是指向second点的成员z的值it_point->second.z 中

it_point 是迭代器, 可以理解成访问指针

second 是 结点里面的 数据, 看字面意思, 应该是一个class 或者 struct

z 就是 second 里面的一个数据

1、迭代器是一种对象,它能够用来遍历STL容器中的部分或全部元素,每个迭代器对象代表容器中的确定的地址。迭代器修改了常规指针的接口,所谓迭代器是一种概念上的抽象:那些行为上象迭代器的东西都可以叫做迭代器。然而迭代器有很多不同的能力,它可以把抽象容器和通用算法有机的统一起来。

2、迭代器提供一些基本操作符:*、++、==、!=、=。这些操作和C/C++“操作array元素”时的指针接口一致。不同之处在于,迭代器是个所谓的smart pointers,具有遍历复杂数据结构的能力。其下层运行机制取决于其所遍历的数据结构。因此,每一种容器型别都必须提供自己的迭代器。事实上每一种容器都将其迭代器以嵌套的方式定义于内部。因此各种迭代器的接口相同,型别却不同。这直接导出了泛型程序设计的概念:所有操作行为都使用相同接口,虽然它们的型别不同。

3、例程:

#include <iostream>
using namespace std;
class _iterator
{
private:
char* p;
public:
_iterator(char* str):p(str){}
char*& operator++()
{
p+=1; //跟 p++同价;
return p;
}
};
int main()
{
char* p="This is C++ program";
_iterator it(p);
cout<<"++之前:"<<p<<endl;
char* p1=++it; //把地址向前加了一个char 型长度,然后给指针p1
cout<<"++之后:"<<p1<<endl;
return 0;
}
C++ 迭代器有点类似于指针, cpoints应该是一个存放结构体的容器,所以有second.z
一生只想爱一个人 只是 达内科技 伦广州大连 wwan模块 最经典的哲学书 basecamp导入地图 shell91 magic world russia annie.du wsu.edu weblogic 12c补丁下载 绝命毒师2 磁力链接 I might as well sth universal los anglos 玄彬姜素拉分手 母亲节创意视频 鄂财教发 2017 117 moneywise 倒闭了 four-minutes mile 四季锦 全部番外 反叛的鲁路修ⅰ 兴道 kimora aqua new trend circuits malformedobjectname 行政主厨 厨师长 gal girl区别 biotek酶标仪 htx make the first cut 鬼吹灯寻龙诀豆瓣 便宜性价比高的游戏本 拟合 正则化 日本在钓鱼岛最新2017

Copyright 满意通 Some Rights Reserved

如反馈或投诉等情况联系:une35498#163.com