I have a sorted array in which I find number of items less than particular value using binary search (std::upper_bound
) in O(logn)
time.
Now I want to insert and delete from this array while keeping it sorted. I want the overall complexity to be O(logn)
.
I know that using binary search tree or std::multiset
I can do insertion, deletion and upper_bound in O(logn)
but I am not able do get the distance/index (std::distance
is O(n)
for sets) in logarithmic time.
So is there a way to achieve what I want to do?