`
luliangok
  • 浏览: 782404 次
文章分类
社区版块
存档分类
最新评论

迭代器(iterator)并非指针

 
阅读更多
如下代码产生如下错误:
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>
usingnamespacestd;

structlabel
...{
intx;
inty;
}
;

intmain()
...{
vector
<label*>plabel;
label
** pCurrlabel= plabel.begin();
return0;
}


改为
label*pCurrlabel = *(plabel.begin());
就好了。

因为plabel.begin()返回的是一个迭代器,并不能自然地转化为指针。

(摘自:www.linuxquestions.org


分享到:
评论

相关推荐

    C++_Iterator_迭代器_介绍

    除了使用下标来访问 vector 对象的元素外,标准库还提供了另一种访问元素的方法:使用迭代器(iterator)。迭代器是一种检查容器内元素并遍历元素的数据类型。 标准库为每一种标准容器(包括vector)定义了一种迭代...

    浅析iterator与指针的区别

    指针和iterator都支持减法运算,指针-指针得到的是两个指针之间的距离,迭代器-迭代器得到的是两个迭代器之间的距离

    C++迭代器介绍(iterator、const_iterator、reverse_interator、const_reverse_interator)

    迭代器是一种智能指针,具有遍历复杂数据结构的能力 不同的容器有不一样的内部结构,因此会有一样的迭代器类型 迭代器定义后,并不属于某一实例容器对象,只要是属于该迭代器类型的容器类型都可用 迭代器的分类 ...

    STL模板,常用容器.docx

    1,STL的六大组件:容器container,算法algorithm,迭代器iterator,仿函数,适配器(配接器),空间配置器,,容器和算法是通过迭代器进行无缝连接起来的,STL几乎所有代码都采用了模板类或模板函数。 (1).容器:...

    关于vector迭代器失效的几种情况总结

    迭代器是一种类似于指针的对象(如可以内容提领,成员访问等),但他又不仅仅是一种普通的指针。 关于迭代器失效,我们可以看下面这个例子: #include #include void PrintVector(const vector&lt;int&gt;& v) { vector...

    YieldJS:用于为数组创建迭代器和延续方法的 JavaScript 库

    产量JS 一个JavaScript库,用于为数组创建迭代器,生成器和Continuation方法。... reset :重置迭代器(包括迭代指针和输出数组)以用于其他迭代,而无需创建新的迭代器。 基本上促进了可重用性。 用法: var x

    标准模板库STL

    迭代器是面向对象版本的指针,如同指针可以指向内存中的一个地址,迭代器可以指向容器中的一个位置。 STL的每一个容器类模板中,都定义了一组对应的迭代器类,用以存取容器中的元素。这样,在STL中迭代器就将算法...

    带头结点的双向循环链表数据结构

    设计一个接口interface linearList,设计一个类class doubleChainNode相当于C++中的结构体,设计一个类class doubleChainjava实现了了接口linearList所有方法,以及实现迭代器接口Iterable中的一个方法Iterator&lt;T&gt; ...

    Visitor-and-Iterator-Design-Pattern

    您已经提供了一个迭代器类Iterator ,用户可以创建它来遍历整个表达式树。 该迭代器的特殊之处在于它多次访问树的每个节点。 没有子节点的节点将被访问一次。 有一个孩子的节点被访问两次(访问孩子之前和之后)。 ...

    STL源码剖析.pdg

    3.4.5 迭代器相应型别之五iterator_category 092 以advanced() 为例 093 消除 "单纯传递调用函数" 097 以distance() 为例 098 3.5 std::iterator class 的保证 099 3.6 iterator相关源码完整重列 101 3.7 sgi ...

    STL 源码剖析(侯捷先生译著)

    3.4.5 迭代器相应型别之五iterator_category 092 以advanced() 为例 093 消除 "单纯传递调用函数" 097 以distance() 为例 098 3.5 std::iterator class 的保证 099 3.6 iterator相关源码完整重列 101 3.7 SGI ...

    Collection集合习题答案 1

    Iterator迭代器对象在遍历集合时,内部采用指针的方式来跟踪集合中的元素,在调用Iterator的next()方法之前,迭代器的索引位于第一个元素之前,不指

    STL_multiset和STL_set–算法–笔记

    STLSTL_multisetSTL_set STL_multiset 方法:multisetst; 定义了一个multiset变量st,st里面可以存放T类型数据,并且能...p是迭代器,相当于指针,可用于指向multiset中的元素。访问multiset中的元素要通过迭代器 与指

    C++头文件大全.pdf

    迭代器:iterator 算法:algorithm 文件操作:fstream、cstdio 异常处理:exception 时间和日期:chrono、ctime 数学函数:cmath、cstdlib 多线程:thread、mutex、condition_variable 类型识别:typeinfo 智能指针...

    opencv中对图像像素的访问

    //迭代器iterator操作像素 void iterColorReduce(Mat& temImage,int div) { Mat_&lt;Vec3b&gt;::iterator it = temImage.begin(); Mat_&lt;Vec3b&gt;::iterator itend = temImage.end(); //存取彩色图像的像素 while (it != ...

    c++ STL之list对结构体的增加,删除,排序等操作详解

    对STL中的list进一步学习,编程过程中对结构体的操作很多。 全部代码如下: /* ... iterator insert(lit,元素)在迭代器指针lit前插入元素,返回插入元素的迭代器指针; void insert(lit,n,元素)

    实例分析Array.from(arr)与[…arr]到底有何不同

    由图我们可以看出有一个[Symbol.iterator]属性指向该对象的默认迭代器方法。那么它又是如何实现的呢? 迭代器(iterator) 作用(参考阮一峰老师的ES6) 1.为各种数据结构提供一个统一的,简单的访问接口 2.使数据结构...

    effective stl stl 技巧

    迭代器 条款26:尽量用iterator代替const_iterator,reverse_iterator和const_reverse_iterator 条款27:用distance和advance把const_iterator转化成iterator 条款28:了解如何通过reverse_iterator的base得到...

    effective stl 中文 pdf

    迭代器 条款26: 尽量使用iterator代替const_iterator,reverse_iterator和const_reverse_iterator 条款27: 使用distance和advance把const_iterators转化成iterators 条款28: 了解如何通过reverse_iterator的base...

Global site tag (gtag.js) - Google Analytics