非可变序列算法

#include <bits/stdc++.h>
#include <string>
#include <vector>
using namespace std;
bool g(int value){
    return value>3;
}
int main() {
    vector<int> v;
    int a[]={1,2,3,4,5};
    vector<int> t(a,a+sizeof(a)/sizeof(int));
    v.insert(v.begin(),t.begin(),t.end());
    
    int num=count(v.begin(),v.end(),2);
    cout<<"等于2的数量有:"<<num<<endl;
     num=count_if(v.begin(),v.end(),g);
     cout<<"大于3的数量有:"<<num<<endl;
     
     int a2[]={3,4};
     vector<int> t2(a2,a2+sizeof(a2)/sizeof(int));
    vector<int>::iterator si=search(v.begin(),v.end(),t2.begin(),t2.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(),g);
    if(fi2!=v.end()){
        cout<<"大于3的第一个位置为:"<<fi2-v.begin()<<",值为:"<<*fi2<<endl;
    }
    
    vector<int>::iterator minn=min_element(v.begin(),v.end());
    vector<int>::iterator maxx=max_element(v.begin(),v.end());
    cout<<"最大值="<<*maxx<<",最小值="<<*minn<<endl;
    return 0;
}

 

posted @ 2025-02-28 19:30  -刘-j-x-  阅读(6)  评论(0)    收藏  举报