为什么 C++ 容器没有 contains 方法?
Why does C++ containers not have a contains method?
检查成员资格是任何编程语言中最常用的操作之一,但 C++ 坚持要求程序员使用冗长的 container.find(value) != container.end()
而不是可读的 container.contains(value)
。不为此操作添加语法糖背后的基本原理是什么?
有一种方法可以检查容器是否包含对象:std::any_of()
。这也更灵活,因为它需要一个谓词来确定对象是否在容器中。
并非所有容器都如此。例如; std::set
有一个 .count()
成员函数,本质上与 contains
相同,如果容器不包含元素,它将 return 0
并且>0
如果有的话。还有 std::any_of
适用于所有容器。
检查成员资格是任何编程语言中最常用的操作之一,但 C++ 坚持要求程序员使用冗长的 container.find(value) != container.end()
而不是可读的 container.contains(value)
。不为此操作添加语法糖背后的基本原理是什么?
有一种方法可以检查容器是否包含对象:std::any_of()
。这也更灵活,因为它需要一个谓词来确定对象是否在容器中。
并非所有容器都如此。例如; std::set
有一个 .count()
成员函数,本质上与 contains
相同,如果容器不包含元素,它将 return 0
并且>0
如果有的话。还有 std::any_of
适用于所有容器。