for循环中的矢量迭代器

时间:2015-05-10 10:32:00

标签: c++ vector iterator

我有这个循环

   for(vector<Graph*>::iterator itr = current->getchildren().begin(); itr = current->getchildren().end(); ++itr)

当前是:

   Graph* current = new Graph(*root);

    class Graph
    {
    private:

        vector<Graph*>              children;

我在循环中出现此错误:

  

错误:无法转换&#39;(itr =(*&amp;(&amp;)   current-&gt; Graph :: getchildren()) - &gt; std :: vector&lt; _Tp,_Alloc&gt; :: end&gt;()))&#39;来自&#39; std :: vector :: iterator {aka   __gnu_cxx :: __ normal_iterator&gt;}&#39;到了布尔&#39;

我对这里的错误一无所知。我已经在以前版本的代码中使用了这个循环而没有任何问题(仅更改当前名称)

有什么想法吗?

由于

1 个答案:

答案 0 :(得分:1)

尝试使用!=

将迭代器与结尾进行比较
for (...; itr != current->getchildren().end(); ...)

在您的代码中,您使用assignement operator =将迭代器的值立即设置为结尾。这个exexsion有一个迭代器的类型,幸运的是,编译器没有找到将它转换为bool的方法