プログラム内のイテレータが以前の操作で無効になることがあるので、明示的に無効化したいと考えています。それを無効にするポインタにNULLを代入するなど、イテレータでも同じことをしたいだけです。 container.end()
はここでは正確な考えではありませんでした。私は自分のイテレータにNULLを割り当てようとしましたが、失敗しました。イテレータでNULLポインタの同じ動作をどうやって得ることができますか?イテレータを無効にする方法は?
2
A
答えて
1
これは常に動作しませんか? (イテレーターは常に割り当て可能で、デフォルトコンストラクターブルです)
template <typename Iter>
void foo(Iter it){
it = Iter(); // invalidate
}
2
なぜあなたはcontainer.end()
を使用したいドント...それはほとんどのコンテナのために働く...
yourstring.npos
で天気をチェックすることをお勧めしますのstd :: stringに
?。
4
は、あなたはそれが有効ではない可能性がわかっている場合は、あなたがそれをしなければならないすべてはそれを使用して停止...私は明示的に
を、それを無効にしたい、いくつかの前の操作によって無効にすることができ 。イテレータを無効にすると、明示的に何も処理が行われません。
+2
追加のブロックを使用してイテレータの範囲を制限しようとします。ブロックの外側では、イテレータはもう存在しません。それは無効よりも優れています。 –
1
一般的にはできません。無効にすることはできないイテレータがいくつかあります。たとえば、乱数ジェネレータを出力イテレータとしてモデル化すると、operator*
が現在の数値を返し、operator++
が新しいものを生成します。
関連する問題
- 1. イテレータの無効消去
- 2. 「無効なイテレータ範囲」::ベクトル
- 3. Java EEインターセプタを無効/無効にする方法は?
- 4. オートコンプリートのEnterキーを無効/無効にする方法は?
- 5. hrefを無効にする方法と無効にする
- 6. クリックボタンを無効にする方法は?
- 7. キーボードポップアップを無効にする方法は?
- 8. ビーカーキャッシュを無効にする方法は?
- 9. コンボボックスアイテムを無効にする方法は?
- 10. setOnItemClickListenerを無効にする方法は?
- 11. データベースログを無効にする方法は?
- 12. イオンファブボタンを無効にする方法は?
- 13. std :: list :: clearはstd :: list :: endイテレータを無効にしますか?
- 14. jQuery jScrollPane:無効にする方法は?
- 15. は無効にする方法com.sun.org.apache.xerces.internal.parsers.SAXParser
- 16. 無効方法は
- 17. C#でWindows 10のホットキーを無効/無効にする方法
- 18. GtkMenu項目の一部を無効/無効にする方法
- 19. コンポーネントを有効または無効にする方法は?
- 20. push_front()の後にC++ dequeのイテレータが無効にされる
- 21. JqGrid exportToExcelを無効にする方法は無効なXMLエラーですか?
- 22. jQueryでボタン/リンクを無効/有効にする方法は?
- 23. フラットリストのスクロールを有効または無効にする方法
- 24. phpdismodでPHPモジュールを無効/有効にする方法は?
- 25. ラジオボタンでチェックボックスを有効/無効にする方法は?
- 26. jackson SerializationFeature.WRAP_ROOT_VALUEを有効/無効にする方法は?
- 27. QTreeViewイベントの項目を有効/無効にする方法は?
- 28. GoogleのreCaptchaウィジェットを有効/無効にする方法は?
- 29. pythonコードからvirtualenvを有効/無効にする方法は?
- 30. コントロールのグループを有効/無効にする方法は?
まず、このような振る舞いにはお勧めできません。次に、イテレータへのポインタを格納できます。 – W55tKQbuRu28Q4xv
あなたが本当に誰かに未定義の振る舞いを明白に与える方法を説明してもらいたいなら、 – kriss
なぜこれを望みますか?後でイテレータで行うことができないことは、あなたが前に行うことはできません。 – MSalters