Uunordered_multimap Flashcards
Iterators
begin
cbegin( )
returns an iterator to the beginning
Parameters
(none)
Return value
Iterator to the first element.
Complexity
Constant.
Iterators
end
cend( )
returns an iterator to the end
Parameters
(none)
Return value
Iterator to the element following the last element.
Complexity
Constant.
Capacity
empty( )
checks whether the container is empty
Parameters
(none)
Return value
true if the container is empty, false otherwise
Complexity
Constant
Capacity
size( )
returns the number of elements
Parameters
(none)
Return value
The number of elements in the container.
Complexity
Constant.
Capacity
max_size( )
returns the maximum possible number of elements
Parameters
(none)
Return value
Maximum number of elements.
Complexity
Constant.
Modifiers
erase( )
erases elements
Parameters
pos - iterator to the element to remove
first, last - range of elements to remove
key - key value of the elements to remove
Return value
1-2) Iterator following the last removed element.
3) Number of elements removed.
Exceptions
1,2) Throws nothing.
3) Any exceptions thrown by the Compare object.
Complexity
Given an instance c of unordered_multimap:
1) Average case: constant, worst case: c.size()
2) Average case: std::distance(first, last), worst case: c.size()
3) Average case: c.count(key), worst case: c.size()
Modifiers
clear( )
clears the contents
Parameters
(none)
Return value (none)
Complexity
Linear in the size of the container, i.e., the number of elements.
Modifiers
insert( )
inserts elements
Parameters
hint - iterator, used as a suggestion as to where to insert the content
value - element value to insert
first, last - range of elements to insert
ilist - initializer list to insert the values from
nh - a compatible node handle
Type requirements
-InputIt must meet the requirements of LegacyInputIterator.
Return value
1-4) Returns an iterator to the inserted element.
5-6) (none)
7,8) End iterator if nh was empty, iterator pointing to the inserted element otherwise.
Exceptions
1-4) If an exception is thrown by any operation, the insertion has no effect.
This section is incomplete
Reason: cases 5-6
Complexity
1-4) Average case: O(1), worst case O(size())
5-6) Average case: O(N), where N is the number of elements to insert. Worse case: O(N*size()+N)
7-8) Average case: O(1), worst case O(size())
Modifi
emplace( )
constructs element in-place
Parameters
args - arguments to forward to the constructor of the element
Return value
Returns an iterator to the inserted element.
Exceptions
If an exception is thrown by any operation, this function has no effect.
Complexity
Amortized constant on average, worst case linear in the size of the container.
Modifiers emplace_hint( )
constructs elements in-place using a hint
Parameters
hint - iterator, used as a suggestion as to where to insert the new element
args - arguments to forward to the constructor of the element
Return value
Returns an iterator to the newly inserted element.
Exceptions
If an exception is thrown by any operation, this function has no effect (strong exception guarantee).
Complexity
Amortized constant on average, worst case linear in the size of the container.
Modifiers
swap( )
swaps the contents Parameters other - container to exchange the contents with Return value (none)
Exceptions
Any exception thrown by the swap of the Hash or KeyEqual objects.
(until C++17) noexcept specification: noexcept(std::allocator_traits::is_always_equal::value && std::is_nothrow_swappable::value && std::is_nothrow_swappable::value) (since C++17) Complexity Constant.
Modifiers
extract( )
extracts nodes from the container
Parameters
position - a valid iterator into this container
x - a key to identify the node to be extracted
Return value
A node handle that owns the extracted element, or empty node handle in case the element is not found in overload (2)
Complexity
1,2) Average case O(1), worst case O(a.size()).
Modifiers
merge( )
splices nodes from another container Parameters source - compatible container to transfer the nodes from Return value (none)
Complexity
Average case O(N), worst case O(N*size()+N), where N is source.size().
Lookup
count( )
returns the number of elements matching specific key
Parameters
key - key value of the elements to count
x - a value of any type that can be transparently compared with a key
Return value
1) Number of elements with key key.
2) Number of elements with key that compares equivalent to x.
Complexity
linear in the number of elements with key key on average, worst case linear in the size of the container.
Lookup
find( )
finds element with specific key
Parameters
key - key value of the element to search for
x - a value of any type that can be transparently compared with a key
Return value
Iterator to an element with key equivalent to key. If no such element is found, past-the-end (see end()) iterator is returned.
Complexity
Constant on average, worst case linear in the size of the container.