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;
    }
  • 相关阅读:
    转 Xcode调试技巧 EXC_BAD_ACCESS
    qq web协议(转)
    iphone 调试技巧
    转Xcode 调试技巧 XCode调试技巧–设置全局断点快速定位问题代码所在行[zz]
    xcode 允许SVN管理项目文件
    mql4如何自定义画图
    mql相关知识
    iphone 使用委托(delegate)在不同的窗口之间传递数据
    关于同一工单中上万笔序号的一次性生成
    SharpDevelop使用心得
  • 原文地址:https://www.cnblogs.com/yaoyueduzhen/p/4337791.html
Copyright © 2011-2022 走看看