zoukankan      html  css  js  c++  java
  • c++中find函数的用法

    find函数主要实现的是在容器内查找指定的元素,并且这个元素必须是基本数据类型的。
    查找成功返回一个指向指定元素的迭代器,即元素在容器中的下标,查找失败返回end迭代器。

    头文件

    #include <algorithm>

    函数实现

    template<class InputIterator, class T>
    InputIterator find (InputIterator first, InputIterator last, const T& val)
    {
      while (first!=last) 
      {
         if (*first==val) return first;
         ++first;
       }
        return last;
    }

    例1(vector)

    复制代码
    #include <iostream>
    #include <algorithm>
    #include <vector>
    using namespace std;
    
    int main()
    {
        vector<string> m;
        m.push_back("hello");
        m.push_back("hello2");
        m.push_back("hello3");
        if (find(m.begin(), m.end(), "hello") == m.end())
            cout << "no" << endl;
        else
            cout << "yes" << endl;
    }
    复制代码

    例2(set)

    复制代码
    #include <iostream>
    #include <algorithm>
    #include <string>
    #include <set>
    using namespace std;
    
    int main()
    {
        set<string> m;
        m.insert("hello");
        m.insert("hello2");
        m.insert("hello3");
        if (find(m.begin(), m.end(), "hello") == m.end())
            cout << "no" << endl;
        else
            cout << "yes" << endl;
    }
    复制代码

    1:set自身有个find函数,举例如下:

    复制代码
    #include <iostream>
    #include <algorithm>
    #include <string>
    #include <set>
    using namespace std;
    
    int main()
    {
        set<string> m;
        m.insert("hello");
        m.insert("hello2");
        m.insert("hello3");
        if (find(m.begin(), m.end(), "hello") == m.end())
            cout << "no" << endl;
        else
            cout << "yes" << endl;
    }
    复制代码

    2:string自身有个find函数,没有找到返回-1,举例如下:

    复制代码
    #include <iostream>
    #include <algorithm>
    #include <string>
    using namespace std;
    
    int main()
    {
        string s = "helllo";
        if (s.find("e") != -1)  //yes
            cout << "yes" << endl;
        else
            cout << "no" << endl;
    
        if (s.find("z") != -1)  //no
            cout << "yes" << endl;
        else
            cout << "no" << endl;
    }
  • 相关阅读:
    jquery sortable 在ie中拖动的后tabs不显示解决了
    光标是停在文本框文字的最后 ie
    PetShop安装
    Python小题目 针对快速教程
    vb升级到vb.net的一些文章(downmoon收集自msdn)
    [算法 笔记]大根堆
    [More Effective C++ 学习笔记]异常
    [More Effective C++ 学习笔记]效率
    [TCP IP详解:学习笔记]TCP定时器
    【Linux 编程】pthead_cond_t 的使用
  • 原文地址:https://www.cnblogs.com/yaoyueduzhen/p/4337791.html
Copyright © 2011-2022 走看看