Like the question says, can you remove an element from a std::unordered_set
using a bucket iterator (local_iterator
)? I can see two possible solutions:
iterator
s, is there equivalent functionality for local_iterator
?iterator
for a local_iterator
?If it's not feasible, please elaborate on why it's not.
The unordered_set::erase() function is a built-in function in C++ STL which is used to remove either a single element or a group of elements ranging from start(inclusive) to end(exclusive). This decreases the size of a container by the number of elements removed.
The unordered_set::bucket() method is a builtin function in C++ STL which returns the bucket number of a specific element. That is, this function returns the bucket number where a specific element is stored in the unordered_set container.
Unordered set is an associative container that contains a set of unique objects of type Key. Search, insertion, and removal have average constant-time complexity. Internally, the elements are not sorted in any particular order, but organized into buckets.
Definition of C++ hashset. Hashset can be defined as an unordered collection that consists of unique elements. Hashset consists of standard operation collection such as Contains, Remove, Add; it also constitutes of the standard set-based operations like symmetric difference, intersection, and union.
The obvious answer is no, since there is no function in the
interface which supports this. There is also no way to get to
an iterator
from a local_iterator
, for the obvious reason
that a local_iterator
contains a lot less information. (For
most implementations, I suspect that it would be fairly simple
to implement erase( local_iterator )
, had the standard
required it. On the other hand, I can't think of a conceivable
use for it, which may be why the standard didn't require it.)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With