c++ STL find search
#include <iostream>
#include <algorithm>
#include <deque>
#include <list>
#include <vector>
#include <functional>
using namespace std;
//二元谓词
bool isEven(int elementParam, bool even)
{
if (even)
{
return elementParam % 2 == 0;
}
else
{
return elementParam % 2 == 0;
}
}
int main()
{
deque<int> deque1;
list<int> list1;
for (int k=0;k<10;k++)
{
deque1.insert(deque1.end(),k);
}
for (int k = 1; k<11; k++)
{
deque1.insert(deque1.end(), k);
}
for (int k = 3; k<10; k++)
{
deque1.insert(deque1.end(), k);
}
deque<int>::iterator deque_iter;
for (deque_iter = deque1.begin();deque_iter != deque1.end();++deque_iter)
{
cout << *deque_iter << " ";
}
cout << endl;
for (int k=4;k<10;k++)
{
list1.push_back(k);
}
list<int>::iterator list_iter1;
for (list_iter1 = list1.begin();list_iter1 != list1.end();++list_iter1)
{
cout << *list_iter1 << " ";
}
cout << endl;
deque<int>::iterator deque_iter1;
deque_iter1 = search(deque1.begin(), deque1.end(), list1.begin(), list1.end());
while (deque_iter1 != deque1.end())
{
cout << "find ! element position:" <<distance(deque1.begin(),deque_iter1)+1<< endl;
++deque_iter1;
deque_iter1 = search(deque_iter1, deque1.end(), list1.begin(), list1.end());
}
cout << "------------------------------------------------" << endl;
vector<int> vector1;
for (int k=0;k<10;k++)
{
vector1.push_back(k);
}
vector1.push_back(10);
vector1.push_back(12);
vector1.push_back(14);
vector<int>::iterator vector_iter1;
for (vector_iter1 = vector1.begin();vector_iter1 != vector1.end();++vector_iter1)
{
cout << *vector_iter1 << " ";
}
cout << endl;
bool checkEventArgs[3] = { true,false,true };
vector<int>::iterator vector_iter2;
vector_iter2 = search(vector1.begin(), vector1.end(),checkEventArgs,checkEventArgs+3, isEven);
if (vector_iter2 != vector1.end())
{
cout << "find:" << *vector_iter2 << endl;
}
else
{
cout << "not find.." << endl;
}
system("pause");
return 0;
}
=====================================================
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 10 3 4 5 6 7 8 9
4 5 6 7 8 9
find ! element position:5
find ! element position:14
find ! element position:22
------------------------------------------------
0 1 2 3 4 5 6 7 8 9 10 12 14
find:10
请按任意键继续. . .
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~