readability-container-contains¶
查找使用 container.count()
和 container.find() == container.end()
,它们应该被调用 container.contains()
方法替换。
是否应该使用 contains
而不是 count
/find
检查元素是否包含在容器中,因为 contains
更清楚地传达了意图。此外,对于允许每个键有多个条目的容器(multimap
、multiset
等),contains
比 count
更有效,因为 count
需要做不必要的额外工作。
示例
初始表达式 |
结果 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
此检查将适用于任何具有 contains
方法的类,特别是包括 std::set
、std::unordered_set
、std::map
和 std::unordered_map
(从 C++20 开始),以及 std::string
和 std::string_view
(从 C++23 开始)。