温馨提示×

c++ contains和find的区别

c++
小樊
134
2024-07-16 00:06:58
栏目: 编程语言

C++ 中的 findcontains 都是用来查找容器中是否包含指定元素的方法,但它们的用法和功能略有不同。

  1. 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;
    }
    
  1. 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 方法返回一个布尔值。在使用时应根据具体的需求选择合适的方法。

0