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.