C++中的迭代器是指针变量吗?

来源:百度知道 编辑:UC知道 时间:2024/09/24 17:11:11
用法是一样的,而且:
#include<iostream>
#include<vector>
using namespace std;
int main()
{
vector<int> a(10,2);
for(vector<int>::iterator b=a.begin();b!=a.end();++b)
cout<<*b<<" "<<sizeof(b)<<" "<<sizeof(vector<string>::iterator)<<" "<<b<<endl;
return 0;
}
结果发现迭代器占用内存4字节,同时迭代器输出的是一个指针(地址)。
我认为迭代器是一种特殊的指针变量,但不知道对不对。

http://baike.baidu.com/view/925158.htm

回答要简洁!

LZ说的没错!是的!

迭代器本质上是C++实现的一种智能指针,在使用上迭代器可以当做指针使用,但是迭代器包含了更多的操作,使用更加安全。关于智能指针,随便找本C++的书都会讲的。

迭代器是STL的概念,不是C++的概念,既然你用到了模板,就该清楚从模板实例到类类型时本来就允许有不同的结果。