21xrx.com
2024-09-20 00:51:30 Friday
登录
文章检索 我的文章 写文章
C++11中的查找功能
2023-07-13 21:11:25 深夜i     --     --
C++11 查找 find find_if std::map

随着计算机科学的不断发展和软件开发的不断需求,C++语言作为一种高级编程语言继续保持它的重要性和影响力。在C++11中,增加了许多新的功能来提升程序员的开发效率,其中包括了查找功能。下面将介绍C++11中的查找功能。

1. count函数

count函数的作用是计算某个元素在序列中出现的次数。其函数原型如下:

template

typename iterator_traits ::difference_type

count (InputIterator first, InputIterator last, const T& val);

其中,first和last分别是定义序列的区间的迭代器,val是需要计数的元素,函数返回值是计数值。

count函数可用于任何支持随机访问的容器类型,如vector和array。例如,以下代码计算容器v中元素6的个数:

std::vector v = 6;

int n = std::count(v.begin(), v.end(), 6); // n=3

2. find函数

find函数的作用是在容器中查找某个元素。其函数原型如下:

template

InputIterator find (InputIterator first, InputIterator last, const T& val);

其中,first和last分别是定义序列的区间的迭代器,val是需要查找的元素,函数返回值是包含该元素的迭代器,如果没找到则返回last。

find函数也可用于任何支持随机访问的容器类型,如vector和array。例如,以下代码查找容器v中元素2的位置:

std::vector v = 6;

auto it = std::find(v.begin(), v.end(), 2);

if (it != v.end()) {

  std::cout << "Element found at position " << std::distance(v.begin(), it) << "\n";

} else {

  std::cout << "Element not found\n";

}

输出结果为“Element found at position 3”。

3. find_if函数

find_if函数的作用是在容器中查找满足某个条件的元素。其函数原型如下:

template

InputIterator find_if (InputIterator first, InputIterator last, UnaryPredicate pred);

其中,first和last分别是定义序列的区间的迭代器,pred是一个一元谓词函数,函数返回值是包含该元素的迭代器,如果没找到则返回last。

find_if函数用于寻找满足某个特定条件的元素。例如,以下代码查找容器v中第一个偶数:

std::vector v = 7;

auto it = std::find_if(v.begin(), v.end(), [](int x){return x % 2 == 0;});

if (it != v.end()) {

  std::cout << "First even element found at position " << std::distance(v.begin(), it) << "\n";

} else {

  std::cout << "No even element found\n";

}

输出结果为“First even element found at position 4”。

总之,C++11中提供了三种查找函数count、find和find_if,它们可以方便地用于查找容器中的元素,提高了程序员的开发效率。

  
  

评论区

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