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
方法返回一個布爾值。在使用時應根據具體的需求選擇合適的方法。