117.info
人生若只如初见

c++ contains和find的区别

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

  1. find 方法:
  • find 方法用于在容器中查找指定元素,如果找到则返回指向该元素的迭代器,如果找不到则返回指向容器末尾的迭代器。
  • find 方法适用于大多数标准库容器,如 std::vector, std::set, std::map 等。
  • 用法示例:
    std::vector 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 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 方法返回一个布尔值。在使用时应根据具体的需求选择合适的方法。

未经允许不得转载 » 本文链接:https://www.117.info/ask/fe0edAzsIAwBSBFY.html

推荐文章

  • C++类指针与数组有什么关系

    C++类指针与数组之间有一定的关系,可以使用类指针来操作数组元素。例如,可以使用类指针来访问数组中的元素,或者将数组作为类的属性,通过类指针访问数组元素。...

  • C++类指针的常见错误有哪些

    未初始化指针:在声明指针时没有对其进行初始化,导致指针指向一个未知的内存地址。 野指针:指针指向的内存已经释放或者不再有效,但是仍然被用于访问内存,可能...

  • 如何理解C++类指针的概念

    C++类指针是指向一个类对象的指针,它存储了对象的内存地址。通过类指针,我们可以访问和操作类对象的成员变量和成员函数。类指针的声明和使用与普通指针类似,但...

  • C++ fscanf的性能表现如何

    fscanf函数在C++中用来读取文件并按照指定格式将数据保存到变量中。它的性能取决于读取文件的大小和格式化字符串的复杂度。通常情况下,fscanf的性能比较低,特别...

  • c++ contains函数怎样使用

    在C++中,std::string类和C-style字符串都提供了std::string::find()方法来检查是否包含指定的子字符串。下面是一个使用std::string::find()方法的简单示例:

  • c++ delegate如何实现延迟调用

    在C++中,可以通过使用函数指针或者Lambda表达式来实现延迟调用的delegate。以下是使用Lambda表达式实现延迟调用的示例代码:
    #include #include class Del...

  • c++ delegate能否序列化

    在C++中,delegate是一个函数对象,由一个函数指针和一个对象指针组成。由于函数指针是一个指向函数的地址,而函数的实现通常是在程序编译时确定的,因此delegat...

  • c++ delegate怎样支持多播

    在C++中,要支持多播Delegate,可以使用std::function和std::vector结合使用。以下是一个简单的示例:
    #include #include #include // 定义一个Delegate类型...