有一个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/