std::setで要素のインデックスを見つける必要があります。このインデックスは、イテレータの最初からの距離として視覚化できます。1つの方法は次のとおりです。
for(int i = 0, set<int>::iterator it = s.begin(); it != iteratorToBeFound; ++it, ++i);
これには明らかにO(n)時間がかかります。しかし、setによって内部的に実装されたバイナリ検索ツリーのルートからの距離は、O(log n)時間で見つけることができることがわかっています。
C ++セットのO(log n)時間でインデックスを見つけるために同じものを実装する方法はありますか?