C++ 中的 find
和 contains
都是用来查找容器中是否包含指定元素的方法,但它们的用法和功能略有不同。
find
方法:find
方法用于在容器中查找指定元素,如果找到则返回指向该元素的迭代器,如果找不到则返回指向容器末尾的迭代器。find
方法适用于大多数标准库容器,如 std::vector
, std::set
, std::map
等。std::vector<int> vec = {1, 2, 3, 4, 5};
auto it = std::find(vec.begin(), vec.end(), 3);
if (it != vec.end()) {
std::cout << "Element found at index: " << std::distance(vec.begin(), it) << std::endl;
} else {
std::cout << "Element not found" << std::endl;
}
contains
方法:contains
方法是 C++20 中引入的新方法,用于检查容器是否包含指定元素,返回一个 bool
值表示是否找到了该元素。contains
方法适用于支持 C++20 标准的容器,如 std::vector
, std::set
, std::map
等。std::vector<int> vec = {1, 2, 3, 4, 5};
if (std::ranges::contains(vec, 3)) {
std::cout << "Element found" << std::endl;
} else {
std::cout << "Element not found" << std::endl;
}
总之,find
方法返回一个迭代器,contains
方法返回一个布尔值。在使用时应根据具体的需求选择合适的方法。