非可变序列函数
#include <bits/stdc++.h> using namespace std; bool greater3(int value){ return value>3; } int main(){ vector<int> v; int arr[] = {1,2,3,4,5}; vector<int> test(arr,arr+sizeof(arr)/sizeof(int)); v.insert(v.begin(),test.begin(),test.end()); int num = count(v.begin(),v.end(),2); cout<<"等于2的数量有:"<<num<<endl; num = count_if(v.begin(),v.end(),greater3); cout<<"大于3的数量有:"<<num<<endl; int arr2[] = {3,4}; vector<int> test2(arr2,arr2+sizeof(arr2)/sizeof(int)); vector<int>::iterator si = search(v.begin(),v.end(),test2.begin(),test2.end()); if(si!=v.end()){ cout<<"{3,4},第一个起始位置为:"<<si-v.begin()<<",第一个元素:"<<*si<<endl; } vector<int>::iterator si2 = search_n(v.begin(),v.end(),1,4); if(si2!=v.end()){ cout<<"连续1个4的第一个位置为:"<<si2-v.begin()<<endl; } vector<int>::iterator fi = find(v.begin(),v.end(),2); if(fi!=v.end()){ cout<<"2的第一个位置为:"<<fi-v.begin()<<endl; } vector<int>::iterator fi2 = find_if(v.begin(),v.end(),greater3); if(fi2!=v.end()){ cout<<"大于3的第一个位置为:"<<fi2-v.begin()<<",值为:"<<*fi2<<endl; } vector<int>::iterator min_ = min_element(v.begin(),v.end()); vector<int>::iterator max_ = max_element(v.begin(),v.end()); cout<<"最大值="<<*max_<<",最小值="<<*min_<<endl; return 0; }