I want a data structure that keeps elements in the way that you inserted them and allows erases in $$$O(log(n))$$$ or less. For example, if the initial array is empty and you insert 5, 2, 4, then the array would be [5, 2, 4]. Erase 4 and it is [5, 2]. Insert a 3 and it is [5, 2, 3]. I know that set allows erases in $$$O(log(n))$$$ and insertions but it keeps the elements in sorted order, not in the way that I inserted them.
Auto comment: topic has been updated by Qualified (previous revision, new revision, compare).
You can get rid of the log factor to achieve O(1) for Insert and Delete operations by using
std::list
andstd::unordered_map
.You need to insert a good hash else it is bound to be hacked.
https://codeforces.me/blog/entry/62393