我有这个循环
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;
我对这里的错误一无所知。我已经在以前版本的代码中使用了这个循环而没有任何问题(仅更改当前名称)
有什么想法吗?
由于
答案 0 :(得分:1)
尝试使用!=
for (...; itr != current->getchildren().end(); ...)
在您的代码中,您使用assignement operator =
将迭代器的值立即设置为结尾。这个exexsion有一个迭代器的类型,幸运的是,编译器没有找到将它转换为bool的方法