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 introduced in C++ 20.
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 applies to std::set
, std::unordered_set
, std::map
, std::unordered_map
and the corresponding multi-key variants.
It is only active for C++20 and later, as the contains
method was only added in C++20.