Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
コードに奇妙なバグがあり、電話をかけるとクラッシュするよう dijkstra(cont)です。「cont」は、map<string, poz> cont;poz が自分のクラスであり、関数がvoid dijkstra(map<string, poz> cont). コンテナを参照などとして渡そうとしましたが、効果はありませんでした。
dijkstra(cont)
map<string, poz> cont;
void dijkstra(map<string, poz> cont)
コンテナーを値で渡します。つまり、渡されたときにコピーを作成することになります。イテレータは、生成元と同じコンテナを指す必要があります。そうしないと、「互換性がありません」というエラーが発生します。
代わりに参照渡しを試してください:
void dijkstra(map<string, poz> & cont)