readability-container-contains¶
Finds usages of container.count()
and
container.find() == container.end()
which should be replaced by a call to
the container.contains()
method.
Whether an element is contained inside a container should be checked with
contains
instead of count
/find
because contains
conveys the
intent more clearly. Furthermore, for containers which permit multiple entries
per key (multimap
, multiset
, …), contains
is more efficient than
count
because count
has to do unnecessary additional work.
Examples:
Initial expression |
Result |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
This check will apply to any class that has a contains
method, notably
including std::set
, std::unordered_set
, std::map
, and
std::unordered_map
as of C++20, and std::string
and std::string_view
as of C++23.