STLマップでSTL binary_searchを使用できるかどうか疑問に思っています。試してみましたが、まだ動作しません
map<int,string> dataMap;
if(binary_search (dataMap.begin().first, dataMap.end().first, key))
// do some stuff
前もって感謝します!:)
STLmap
は本質的に二分探索木map::find
です。コンテナー メンバー関数が存在する場合は、それを使用することをアルゴリズムよりも推奨します。
std::map::lower_bound
、std::map::find
およびをstd::map::upper_bound
代わりに使用してください。
if(binary_search (dataMap.begin().first, dataMap.end().first, key))
binary_serach には反復子が必要です。dataMap.begin().first
およびdataMap.end().first
イテレータではありません。もう 1 つの問題は、アクセスするdataMap.end().first
とアプリケーションがクラッシュする可能性が非常に高いことです。