迭代器(iterator)并非指针
2007-04-10 15:34
337 查看
如下代码产生如下错误:
test.cpp: In function `int main()':
test.cpp:15: error: cannot convert `__gnu_cxx::__normal_iterator<label**, std::vector<label*, std::allocator<label*> > >' to `label**' in initialization
#include<iostream>
#include<vector>
using namespace std;
struct label
...{
int x;
int y;
};
int main()
...{
vector<label*> plabel;
label ** pCurrlabel = plabel.begin();
return 0;
}
改为
label * pCurrlabel = *(plabel.begin());
就好了。
因为plabel.begin()返回的是一个迭代器,并不能自然地转化为指针。
(摘自:www.linuxquestions.org)
test.cpp: In function `int main()':
test.cpp:15: error: cannot convert `__gnu_cxx::__normal_iterator<label**, std::vector<label*, std::allocator<label*> > >' to `label**' in initialization
#include<iostream>
#include<vector>
using namespace std;
struct label
...{
int x;
int y;
};
int main()
...{
vector<label*> plabel;
label ** pCurrlabel = plabel.begin();
return 0;
}
改为
label * pCurrlabel = *(plabel.begin());
就好了。
因为plabel.begin()返回的是一个迭代器,并不能自然地转化为指针。
(摘自:www.linuxquestions.org)
相关文章推荐
- 迭代器(iterator)并非指针
- 关于迭代器(iterator)和指针的思考
- 关于迭代器(iterator)和指针的思考
- 关于迭代器(iterator)和指针的思考
- STL源码分析读书笔记--第三章--迭代器(iterator)概念与traits编程技法
- 设计模式——迭代器(Iterator)
- (32)Java学习笔记——集合框架 / Collection 接口 / Iterator 迭代器
- istream_iterator ostream_iterator 迭代器和IO
- 想请教一下迭代器Iterator的问题?
- 标准C++中的Iterator(迭代器)简介
- 设计模式之-迭代器(Iterator)模式 + 建造者(Build)模式
- 如何使用一个输出流迭代器 ostream_iterator
- 一文读懂迭代器(iterator)在vector中的用法
- Design Pattern Iterator 迭代器设计模式
- 小记—— vector 删除指定下标中的元素(不使用迭代器(iterator ))
- python的迭代器iterator
- 设计模式学习笔记——迭代器(Iterator)模式
- vector<_T>::reverse_iterator 反向迭代器分析
- C++基本知识(二)——vector与迭代器和数组与指针
- 从头认识java-9.5 迭代器Iterator