std::unordered_map empty() method
- since C++20
- until C++20
// Const version onlybool empty() const noexcept;// Non const version only[[nodiscard]] bool empty() const noexcept;// Const version onlybool empty() const noexcept;Checks if the container has no elements, i.e. whether begin() == end().
Parameters
(none)
Return value
true if the container is empty, false otherwise.
Complexity
Constant - O(1).
Why [[nodiscard]]?
The [[nodiscard]] attribute is an attribute that invokes compiler warnings whenever
a function has been called and it's result has been discarded.
The reason behind the nodiscard being applied only to the empty method is that
it's likely that the programmer might confuse the adjective empty (
which would mean - is this container empty?) for the verb empty (which would mean - please empty this container for me.).
Exceptions
(none)
Example
#include <unordered_map>#include <iostream>#include <utility> int main(){ std::unordered_map<int, int> numbers; std::cout << std::boolalpha; std::cout << "Initially, numbers.empty(): " << numbers.empty() << '\n'; numbers.emplace(42, 13); numbers.insert(std::make_pair(13317, 123)); std::cout << "After adding elements, numbers.empty(): " << numbers.empty() << '\n';}Initially, numbers.empty(): trueAfter adding elements, numbers.empty(): falseHover to see the original license.