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 开始)。