21xrx.com
2024-09-19 09:52:41 Thursday
登录
文章检索 我的文章 写文章
C++中find函数的使用方法
2023-07-09 21:52:58 深夜i     --     --
C++ find函数 使用方法

C++是一种广泛使用的高级编程语言,其语法简单、面向对象,以及拥有强大的函数库,能够帮助程序员提高开发效率。其中,find函数就是C++函数库中一种十分重要且常用的函数,其主要功能是在一个序列容器中查找目标元素,该函数的使用方法较为灵活,下文将介绍C++中find函数的使用方法。

1. find函数基本用法

find函数的基本用法是在一个序列容器中查找某个元素的位置。以下是find函数的基础语法:


find(first_iter, last_iter, target_value);

其中first_iter和last_iter是容器中存储元素的迭代器,它们用于指定需要查找的序列范围。target_value则是需要查找的目标元素的值,该函数返回一个指向目标元素的迭代器,如果未查找到,则返回last_iter。

下面是一个简单的例子,演示如何使用find函数查找一个值在vector容器中的位置:


#include <iostream>

#include <vector>

#include <algorithm>

using namespace std;

int main()

{

  vector<int> vec 7;

  auto it = find(vec.begin(), vec.end(), 4);

  if(it != vec.end())

  {

    cout << "元素4在向量中的位置为 " << it - vec.begin() << endl;

  }

  else

  

    cout << "没有找到元素 4 " << endl;

  

  return 0;

}

2. 使用find函数查找结构体中的元素

除了在容器中查找基本算术类型的值,find函数还可以用于查找结构体对象中的元素。下面是一个简单的例子:


#include <iostream>

#include <vector>

#include <algorithm>

using namespace std;

struct Person

  string name;

  int age;

;

int main()

{

  vector<Person> people{

    "小明",

     20,

    "小红",

    "小黑",

    "小白"

  };

  auto it = find(people.begin(), people.end(), Person"小明");

  if(it != people.end())

  年龄是 " << it->age << endl;

  

  else

  

    cout << "没有找到指定人员 " << endl;

  

  return 0;

}

3. 使用find_if函数查找满足条件的元素

如果需要查找的元素不是基本数据类型,而是需要按照某种规则进行查找的话,可以使用find_if函数。以下是find_if函数的基本语法:


find_if(first_iter, last_iter, UnaryPredicate);

其中first_iter和last_iter和前述相同,考虑查找大于0且小于5的元素,可以使用以下代码:


int arr[] = 2;

auto it = find_if(begin(arr), end(arr), [](int n) return n > 0 && n < 5; );

if (it != end(arr))

{

  cout << "找到了 " << *it << endl;

}

else

  cout << "没有找到符合条件的元素" << endl;

4. 使用自定义函数对象实现find_if函数

可以使用在函数中自定义的函数对象,例如以下代码:


#include <iostream>

#include <vector>

#include <algorithm>

using namespace std;

struct GreaterThan

{

  int val;

  GreaterThan(int v): val(v) {}

  bool operator()(const int& num) const

  

    return num > val;

  

};

int main()

{

  vector<int> vec 15;

  auto it = find_if(vec.begin(), vec.end(), GreaterThan(10));

  if(it != vec.end())

  {

    cout << "找到了 " << *it << endl;

  }

  else

  

    cout << "没有找到符合条件的元素" << endl;

  

  return 0;

}

以上为C++中find函数的使用方法,包括了基本用法,查找结构体中的元素,使用find_if函数查找满足条件的元素,以及使用自定义函数对象实现find_if函数。熟练掌握这些使用方法,可以提高程序员的开发效率,并编写出更加优秀的代码。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复