.. SPDX-FileCopyrightText: 2019-2020 Intel Corporation .. .. SPDX-License-Identifier: CC-BY-4.0 ====== Lookup ====== All methods in this section can be executed concurrently with each other, concurrently-safe modifiers and while traversing the container. count ----- .. code:: cpp size_type count( const key_type& key ); **Returns**: the number of elements equivalent to ``key``. ----------------------------------------------------- .. code:: cpp template size_type count( const K& key ); **Returns**: the number of elements that are equivalent to ``key``. This overload only participates in overload resolution if qualified-id ``key_compare::is_transparent`` is valid and denotes a type. find ---- .. code:: cpp iterator find( const key_type& key ); const_iterator find( const key_type& key ) const; **Returns**: an iterator to the element equivalent to ``key`` or ``end()`` if no such element exists. If there are multiple elements equivalent to ``key``, it is unspecified which element should be found. ----------------------------------------------------- .. code:: cpp template iterator find( const K& key ); template const_iterator find( const K& key ) const; **Returns**: an iterator to the element that is equivalent to ``key``, or ``end()`` if no such element exists. If there are multiple elements that are equivalent to ``key``, it is unspecified which element should be found. These overloads only participate in overload resolution if qualified-id ``key_compare::is_transparent`` is valid and denotes a type. contains -------- .. code:: cpp bool contains( const key_type& key ) const; **Returns**: ``true`` if at least one element equivalent to ``key`` exists in the container; ``false``, otherwise. ----------------------------------------------------- .. code:: cpp template bool contains( const K& key ) const; **Returns**: ``true`` if at least one element that is equivalent to ``key`` exists in the container; ``false``, otherwise. This overload participates in overload resolution only if qualified-id ``key_compare::is_transparent`` is valid and denotes a type. lower_bound ----------- .. code:: cpp iterator lower_bound( const key_type& key ); const_iterator lower_bound( const key_type& key ) const; **Returns**: an iterator to the first element in the container that is `not less` than ``key``. ----------------------------------------------------- .. code:: cpp template iterator lower_bound( const K& key ) template const_iterator lower_bound( const K& key ) const **Returns**: an iterator to the first element in the container that is `not less` than ``key``. These overloads only participate in overload resolution if qualified-id ``key_compare::is_transparent`` is valid and denotes a type. upper_bound ----------- .. code:: cpp iterator upper_bound( const key_type& key ); const_iterator upper_bound( const key_type& key ) const; **Returns**: an iterator to the first element in the container that compares `greater` than ``key``. ----------------------------------------------------- .. code:: cpp template iterator upper_bound( const K& key ); template const_iterator upper_bound( const K& key ) const; **Returns**: an iterator to the first element in the container that compares ``greater`` than ``key``. These overloads participate in overload resolution only if qualified-id ``key_compare::is_transparent`` is valid and denotes a type. equal_range ----------- .. code:: cpp std::pair equal_range( const key_type& key ); std::pair equal_range( const key_type& key ) const; **Returns**: if at least one element equivalent to ``key`` exists, a pair of iterators ``{f, l}``, where ``f`` is an iterator to the first element equivalent to ``key``, ``l`` is an iterator to the element that follows the last element equivalent to ``key``. Otherwise, ``{end(), end()}``. ----------------------------------------------------- .. code:: cpp template std::pair equal_range( const K& key ) template std::pair equal_range( const K& key ) **Returns**: if at least one element that is equivalent to ``key`` exists, a pair of iterators ``{f, l}``, where ``f`` is an iterator to the first element that is equivalent to ``key``, ``l`` is an iterator to the element that follows the last element that is equivalent to ``key``. Otherwise, ``{end(), end()}``. These overloads participate in overload resolution only if qualified-id ``key_compare::is_transparent`` is valid and denotes a type.