c++ std標準庫 演算法<algorithm> 查詢演算法 find() find_if()
阿新 • • 發佈:2020-12-19
技術標籤:# 4.1 C++c++查詢演算法findfind_if
#include <functional>
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
template <class T>
void FillValue(T& vect, int first, int last)
{
if (last >= first)
{
for (int i = first; i <= last; ++i)
vect.insert(vect.end(), i);
}
else
{
cout << " The indexes is error: last < first. " << endl;
}
}
void print(int elem)
{
cout << elem << " ";
}
void main()
{
vector <int> myvector;
FillValue(myvector, -3, 12);
for_each(myvector. begin(), myvector.end(), print);
cout << endl;
vector <int>::iterator pos1;
pos1 = find(myvector.begin(), myvector.end(), 5);
vector<int>::iterator pos2;
pos2 = find_if(myvector.begin(), myvector.end(), bind2nd(greater<int>(), 3));
cout << "第一個等於5的元素位置 :" << distance(myvector.begin(), pos1) + 1 << endl;
cout << "第一個大於3的元素位置 :" << distance(myvector.begin(), pos2) + 1 << endl;
}