私は初心者であり、インターネットで適切な答えを見つけることができなかったので、ヒントを求めたい. 次のエラーが表示されます: debug assertion failed - map/set iterator not dereferencable at the line at the line:
pointA = active->pointNext(timeNext);
関数pointNext()を使用すると、すべてが問題ないことがわかり、activeに関係するものは次のとおりです。
active = setS.data.end();
いくつかの詳細情報:
activeはmultiset< classA, classB::classC >::const_iterator です
setSにはsetS.Q、setS.W、setS.TおよびsetS.dataがあり、setS.dataには角括弧内の 0 が含まれています。.cpp ファイルにマルチセット イテレータ宣言がある場合、デバッグ中にアクティブな内容を確認するために入ることができません。.h ファイルにある場合は確認できます。
.cpp に入ることができないので、ポインタ (イテレータ) が内部で間違っているため、逆参照できないように想像できます。空の場合、つまりsetS.dataが空の場合はどうなりますか? または中にゴミがある場合は?
以前は Linux で実行していたことは知っていますが、Windows で実行するために変更しなければならない機能はありますか? たとえば、多数のテンプレート パラメータを 1 つだけに変更するには? (setS.dataをactiveに適切に帰属させるには、よくわからないため、適切に行いますか?
このやや混沌とした投稿で申し訳ありませんが、誰かが間違っている場合は無視するように私の推測を追加したかった. ここに何か不明な点や情報が不足している場合は、喜んで追加します。dereferencablility エラーが発生する理由と、どこを探すべきか教えてください。立ち往生していて、先に進む方法がわからないためです。
どんな助けでも大歓迎です、ありがとう!