有一个Vertice(Vertex类)设置了s,我想将Vertice *address引用的项目的地址放入set<Vertice>::iterator it中。
换一种说法,

address = &(*it);

但是,返回
error: assigning to 'Vertice *' from incompatible type
      'const value_type *' (aka 'const Vertice *')

任何的想法?

最佳答案

保存在 std::set 中的元素不可修改,而且std::set::iterator也是常量迭代器。这意味着对于&(*it),您将获得一个指向const的指针(即const Vertice*),而该指针不能分配给指向非const的指针(即Vertice*)。

您可以将address的类型更改为const Vertice*

const Vertice* address = &(*it);

关于c++ - 地址迭代器项,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40353951/

10-09 00:38