さまざまなパラメータを取得するために、find、erase、およびinsertなどのメソッドに対してSTL実装をオーバーロードするにはどうすればよいですか?私はSTLメソッドのオーバーロードを調べようとしましたが、何の助けも見つかりませんでした。C++ STLメソッドのオーバーロード
答えて
クラスのメソッドをオーバーライドすることはできません。そのクラスのコードを編集しないでください。
ヘルパーとして機能する独自の無料機能を作成します。関連するコンテナクラスを最初のパラメータとして使用します。
クラスから継承してメソッドを追加することはできますが、stdコンテナクラスは継承されるようには設計されていません。
説明:非仮想dtorをベースにポインタを介して派生オブジェクトを破棄することは、厳密にUBです。そして、stdコンテナクラスはvtableを必要としないので、非仮想dtorsを持っています。 STLは静的な多形性のために設計されているので、提案された解決策は[...] –
[..]ベクトルと同じコンセプトに従うクラスを作成し、そのインスタンスを関数テンプレートに渡すだけです。これが実用的かどうかは議論の余地がある。 –
それは私の提案ではありません! :) –
std名前空間にオーバーロードを追加することはできません。独自のデータ型の関数とアルゴリズムの特殊化のみが可能です。別の検索、消去、挿入をしたい場合は(標準の名前空間から)ラッパーを実装して使用してください。
また、私はそれをお勧めしません。どんな種類のオーバーロードを提供したいですか?
それぞれ異なる型のカスタム引数を持つ – Elroy
これは許可されていません。規格はそれを禁止している。
- 1. タイプでのメソッドのオーバーロードC#
- 2. C++のリスト、メソッドのオーバーロード?
- 3. objective-c:関数/メソッドのオーバーロード?
- 4. C++演算子のオーバーロード:私のカスタムクラスのベクトルのstlソート
- 5. STLプライオリティキューとポインタによるオーバーロード
- 6. C#とはC++のSTL塗りつぶしメソッドと同じ
- 7. Boost.Python静的メソッドのオーバーロード
- 8. C++でSTLソートを使用するための比較演算子のオーバーロード
- 9. メソッドのオーバーロードとJava
- 10. オーバーロードjQuery Colorboxメソッド?
- 11. メソッドのオーバーロードと多型Revisited
- 12. C++オーバーロード:[] []演算子のオーバーロード
- 13. STLのstd :: setコンテナパラメータがオーバーロードされた演算子<<()
- 14. メソッドのオーバーロードと、null値
- 15. C++ヒープアロケータ&STLのデフラグ
- 16. STLコンテナのC++ IDE
- 17. C++ STL)は
- 18. C++:STL multimap.equal_range()
- 19. バイナリサーチC++ STL
- 20. C++ stl stringstreamダイレクトバッファアクセス
- 21. C++ STLリンクリスト
- 22. C++オーバーロード `-`
- 23. メソッドの汎用インターフェイスのオーバーロード
- 24. 既存の `toInt`メソッドのオーバーロード
- 25. ** C++でのオーバーロード**
- 26. メソッドのオーバーロードがPHPで
- 27. Cythonのオーバーロード特殊メソッド?
- 28. C++ STL削除エラー
- 29. SystemTapを使用してオーバーロードされたC++メソッドのプロファイリング
- 30. paramsとoptionalsを使ったC#メソッドのオーバーロード
あなたは_do_オーバーロードを意味しますか? std :: for_each(iter1、iter2、fc)のように?あるいは、vector :: find、map :: eraseなどのように、オーバーライドについて話していますか? – xtofl
おそらくC++標準ライブラリを意味し、STLは意味しません。 –