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