C++中的迭代器是指针变量吗?
用法是一样的,而且:#include<iostream>#include<vector>usingnamespacestd;intmain(){vector<int>a(...
用法是一样的,而且:
#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字节,同时迭代器输出的是一个指针(地址)。
我认为迭代器是一种特殊的指针变量,但不知道对不对;或者,迭代器是一个对象,只不过对所有操作符进行了重载。
同时我说一声,我只问是还是不是,还有原因,不需要你告诉我迭代器是什么。
同时注意一点,这个号是我重新注册的,管理员看到后别删贴。 展开
#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字节,同时迭代器输出的是一个指针(地址)。
我认为迭代器是一种特殊的指针变量,但不知道对不对;或者,迭代器是一个对象,只不过对所有操作符进行了重载。
同时我说一声,我只问是还是不是,还有原因,不需要你告诉我迭代器是什么。
同时注意一点,这个号是我重新注册的,管理员看到后别删贴。 展开
4个回答
展开全部
当然不是,而且不仅仅是重载运算符那么简单.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1、迭代器也可以理解为指针,主要有自增,吸取,相等,不等这四种运算,比指针的功能更强大一些。
2、指针是C语言里面就有的东西,而迭代器是C++里面才有的,指针用起来灵活,效率高。迭代器功能更丰富一些(不见得是强大一些),c++的stl里面很多算法都是基于迭代器的,一部分算法的参数可以传递指针作为迭代器使用。
2、指针是C语言里面就有的东西,而迭代器是C++里面才有的,指针用起来灵活,效率高。迭代器功能更丰富一些(不见得是强大一些),c++的stl里面很多算法都是基于迭代器的,一部分算法的参数可以传递指针作为迭代器使用。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询