C++ 如何使用find()方法在双端队列中检查/查找项
find() 函数查找给定数字范围中的元素。返回一个迭代器,指向第一个在范围[first,last)中与要搜索的值相等的元素。如果找不到此类元素,则函数返回last。
语法:
InputIterator find(InputIterator first, InputIterator last, const T& val)
参数:
first,last: 序列中开始和结束位置的输入迭代器。要搜索的范围是[first,last],其中包含first和last之间的所有元素,包括first指向的元素,但不包括last指向的元素。
val: 要在范围内搜索的值。
返回值:
一个指向与val相等的范围中第一个元素的迭代器。
如果没有匹配的元素,函数返回last。
示例:
输入: 10 20 30 40
输出: 元素30找到位置:2(从零开始计数)
输入: 8 5 9 2 7 1 3 10
输出: 元素4未找到。
示例1: 以下是实现在deque中使用find()函数的C++程序。
// C++程序实现
//上述方法
#include <iostream>
#include<bits/stdc++.h>
using namespace std;
//在双端队列中查找元素的函数
void find(deque <int> q)
{
deque<int>::iterator itr;
itr = find(q.begin(), q.end(), 2);
if(itr != q.end())
{
cout << "找到";
}
else
{
cout << "未找到";
}
}
//驱动代码
int main()
{
//声明一个deque
deque<int> q;
//初始化deque
q.push_back(1);
q.push_back(2);
q.push_back(3);
q.push_back(4);
q.push_back(5);
//调用find()函数
find(q);
return 0;
}
输出:
找到
示例2: 以下是演示如何在deque中查找元素的C++程序。
// C++程序实现
//上述方法
#include <iostream>
#include<bits/stdc++.h>
using namespace std;
//在双端队列中查找元素的函数
void find(deque<string> q)
{
deque<string>::iterator itr;
itr = find(q.begin(), q.end(),"Raj");
if(itr != q.end())
{
cout << "找到";
}
else
{
cout << "未找到";
}
}
//驱动代码
int main()
{
//声明一个deque
deque<string> q;
//初始化deque
q.push_back("Akshit");
q.push_back("Nikita");
q.push_back("Deeksha");
q.push_back("Nandish");
q.push_back("Rajat");
//调用find()函数
find(q);
return 0;
}
输出:
未找到
C++中的std::find()与Deque中的find()的区别:
在C++中的 std::find() 函数中,搜索的范围是[first,last),其中包含first和last之间的所有元素,包括first指向的元素,但不包括last指向的元素。
在使用find()函数找到双端队列中的项的情况下,搜索的范围是[first,last],即包括first和last两个位置的元素。
以下是演示在双端队列中查找项目的C++程序。
// C++程序实现
// 上述方法
#include <iostream>
#include<bits/stdc++.h>
using namespace std;
void find(deque<int> q)
{
deque<int>::iterator itr;
itr = find(q.begin(),
q.end(), 5);
if(itr != q.end())
{
cout << "找到了";
}
else
{
cout << "未找到";
}
}
// 建立代码
int main()
{
// 声明一个双向队列
deque<int> q;
// 初始化双向队列
q.push_back(1);
q.push_back(2);
q.push_back(3);
q.push_back(4);
q.push_back(5);
// 调用find()函数
find(q);
return 0;
}
输出结果:
找到了