Vertice(頂点クラス)が設定されているので、 が参照するアイテムのアドレスにs入りたい。言い換えると、Vertice *addressset<Vertice>::iterator it
address = &(*it);
でも、返品
error: assigning to 'Vertice *' from incompatible type
'const value_type *' (aka 'const Vertice *')
何か案が?
Vertice(頂点クラス)が設定されているので、 が参照するアイテムのアドレスにs入りたい。言い換えると、Vertice *addressset<Vertice>::iterator it
address = &(*it);
でも、返品
error: assigning to 'Vertice *' from incompatible type
'const value_type *' (aka 'const Vertice *')
何か案が?
に保存された要素std::setは変更できず、std::set::iterator定数反復子でもあります。つまり、非 const へのポインター (つまり ) に割り当てることができない const へのポインター (つまり ) を取得することを意味し&(*it)ます。const Vertice*Vertice*
のタイプをaddressに変更できますconst Vertice*。
const Vertice* address = &(*it);
のエントリは、set外部コードによって変更できません ( sets の不変条件に違反する可能性があります)。直接ポインターが必要な場合 (そうすべきではありません)、const Vertice*(安全で、変更されていない) 必要がVertice*ありsetます。それがエラーがあなたに言っていることです。