4

STLマップでSTL binary_searchを使用できるかどうか疑問に思っています。試してみましたが、まだ動作しません

map<int,string> dataMap;

if(binary_search (dataMap.begin().first, dataMap.end().first, key))
    // do some stuff

前もって感謝します!:)

4

2 に答える 2

10

STLmapは本質的に二分探索木map::findです。コンテナー メンバー関数が存在する場合は、それを使用することをアルゴリズムよりも推奨します。

于 2012-05-09T22:36:36.360 に答える
3

std::map::lower_boundstd::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とアプリケーションがクラッシュする可能性が非常に高いことです。

于 2012-05-09T22:37:50.960 に答える