std::find和std::string::find

这篇具有很好参考价值的文章主要介绍了std::find和std::string::find。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

std::findstd::string::find是C++标准库中常用的两个函数,用于在容器和字符串中查找特定元素或子字符串。它们的主要区别在于它们所作用的类型不同。

std::find,通用算法函数可以用于任何容器的查找。

函数签名如下

template<class InputIt, class T>
constexpr InputIt find(InputIt first, InputIt last, const T& value)
{
    for (; first != last; ++first)
        if (*first == value)
            return first;
 
    return last;
}

first和last是输入的起始和结尾的迭代器,在这个范围内查找。value就是要查找的内容。

找到了就会返回指向该元素的迭代器,找不到就返回末尾迭代器。

例如

在std::vector<int> vec中查找6

    std::vector<int> vec = {1,2,2,3,4,5,6};
    auto pos = std::find(vec.begin(),vec.end(),6);
    if(pos != vec.end())
    {
        std::cout << "find it" << std::endl;
    }
    else{
        std::cout << "not find" << std::endl;
    }

注意vec.end()是指向vec末尾的下一个位置,也就是6的下一个位置哦。

std::string::find是std::string类的成员函数,用于在字符串中查找子字符串。

函数签名如下

size_t find(const std::string& str, size_t pos = 0) const noexcept;

str要查找的子串,pos从哪里开始,默认为0.从指定位置开始查找第一个等于str的子字符串,如果找到返回该子字符串的起始位置,找不到返回std::string::npos.

例如,在字符串中查找dog

    std::string str = "i have a black dog";
    auto pos = str.find("dog");
    if(pos != std::string::npos)
    {
        std::cout << "find it" << std::endl;
    }
    else
    {
        std::cout << "not find" << std::endl;
    }

总之,std::find,最好拿来查找任意元素。std::string::find,最好拿来查找子字符串。文章来源地址https://www.toymoban.com/news/detail-523483.html

到了这里,关于std::find和std::string::find的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • [开发语言][c++]:左值、右值、左值引用、右值引用和std::move()

    写在前面: 如果你也被 左值、右值、左值引用、右值引用和std::move 搞得焦头烂额,相关概念和理解不够深入,或者认识模棱两可,那么这篇文章将非常的适合你,耐心阅读,相信一定会有所收获~~ 左值: 可以取地址、位于等号左边 – 表达式结束后依然存在的持久对象

    2024年02月02日
    浏览(60)
  • Java 语言哈希查找算法实现

    哈希查找,也称为散列查找,是一种高效的查找算法。它利用哈希函数将映射到数组中的一个位置,通过直接访问该位置来获取元素,从而实现快速查找。Java语言提供了一些类和接口,例如 HashMap 和 HashTable ,使得我们可以方便地使用哈希查找算法。本文将详细介绍

    2024年02月10日
    浏览(44)
  • Java 语言实现二分查找算法

    【引言】 二分查找算法是一种高效且常用的查找算法。它适用于已排序的数组或列表,并通过将目标值与中间值进行比较,来确定目标值在左侧还是右侧。本文将使用Java语言实现二分查找算法,并详细讲解其思想和代码实现。 【算法思想】 二分查找的核心思想是不断缩小查

    2024年02月11日
    浏览(33)
  • C++面试八股文:std::string是如何实现的?

    某日二师兄参加XXX科技公司的C++工程师开发岗位第18面: 面试官: std::string 用过吧? 二师兄:当然用过(废话,C++程序员就没有没用过 std::string 的)。 面试官: std::string(\\\"hello\\\")+\\\"world\\\" 、 \\\"hello\\\"+std::string(\\\"world\\\") 和 std::string(\\\"hello\\\")+std::string(\\\"world\\\") 的结果是什么?为什么? 二师

    2024年02月09日
    浏览(40)
  • C语言折半查找算法及代码实现

    1.折半查找的定义: 在计算机中, 折半查找 ,也称 二分搜索。它 是一种在有序数组中查找某一特定元素的搜索算法。 2.折半查找的实现原理:                  搜索过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜索过程结束;如果某一特定元素

    2024年02月05日
    浏览(56)
  • 头歌(C语言)-数据结构与算法-查找-第1关:实现折半查找

    任务描述 相关知识 编程要求 测试说明 任务描述 本关要求通过补全函数 BSL_FindKey 来实现在已排序的顺序表中查找关键码值为 key 的结点并返回该结点的编号。 相关知识 折半查找通常是针对顺序存储的线性表,线性表的结点按关键码从小到大排序,后面称之为折半查找的顺序

    2024年02月10日
    浏览(60)
  • c++命名空间和include C++ #include<string> 和 using std::string

    1、C++中的命名空间namespace_51CTO博客_c++中的命名空间   2、 C++ #includestring 和 using std::string_yang20141109的博客-CSDN博客 //不光要加头文件,和C语言不同 #include utils/Errors.h //还要加using using android::status_t; using android::INVALID_OPERATION; using android::NO_ERROR; using android::BAD_VALUE; 3、c和c++的差

    2023年04月20日
    浏览(47)
  • c++命名空间和include C++ #include<string> 和 using std::string

    1、C++中的命名空间namespace_51CTO博客_c++中的命名空间   2、 C++ #includestring 和 using std::string_yang20141109的博客-CSDN博客 //不光要加头文件,和C语言不同 #include utils/Errors.h //还要加using using android::status_t; using android::INVALID_OPERATION; using android::NO_ERROR; using android::BAD_VALUE; 3、c和c++的差

    2023年04月20日
    浏览(47)
  • 哈希(Hash)查找算法详解之C语言版

    哈希查找是一种快速查找算法,该算法不需要对进行比较,而是以为自变量,以该在存储空间中的地址为因变量,建立某种函数关系,称为哈希函数,这样在查找某一的时候,就可以通过哈希函数直接得到其地址,有效的提高了查找效率。 选取哈希

    2024年01月19日
    浏览(39)
  • 算法与人生 揭秘C语言中高效搜索的秘诀——二分查找算法详解

    引言,少年们,大家好。在这里祝大家元旦快乐,我是博主 那一脸阳光 ,今天来介绍二分查找 在计算机科学领域,搜索算法是数据处理和问题解决的重要工具之一。其中,**二分查找算法(Binary Search)**以其卓越的时间复杂度和简洁高效的实现,在众多搜索算法中脱颖而出

    2024年01月17日
    浏览(57)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包