zoukankan      html  css  js  c++  java
  • C++ 插入迭代器,算法使用

    #include<iostream>
    #include<vector>
    #include<string>
    #include<numeric>
    #include<algorithm>
    #include<iterator>
    using namespace std;
    bool isDivided2(int num)
    {
        return num%2==0;
    }
    int main(int cnt,char *argv[])
    {
        
        int l[5]={1,3,3,4,6};
        int findl[1]={10};
        cout<<accumulate(l,l+5,0)<<endl; //累加,第三个参数用于指定初始值和推断返回类型
        //输出17
    
        cout<<(find_first_of(&l[0],&l[5],&findl[0],&findl[1])!=&l[5])<<endl;;
        //输出0,即没找到
    
        int *endp=unique(l,l+5); //数组元素被移动,前N个都是唯一元素,返回N+1的位置
        for (int i=0;i<5;i++)
        {
            if(&l[i]==endp)
                cout<<"#";
            cout<<l[i];
        }
        cout<<endl;//输出1346#6 6被复制到前面,所以多出一个6
        
        cout<<"find_if Test\n";
        vector<int> lv(l,l+5);
        vector<int>::iterator itr=lv.begin();
        while ((itr=find_if(itr,lv.end(),isDivided2))!=lv.end()) //找出所有能被2整除的数
        {
            cout<<*itr;
            ++itr;
        }
        cout<<endl; //输出466
    
        //插入迭代器
        //back_inserter front_inserter inserter
        cout<<"back_inserter Test\n";
        vector<int> v;
        cout<<v.size()<<endl;//0
        back_insert_iterator<vector<int>> t=back_inserter(v);
        fill_n(back_inserter(v),10,1);//要动态增加迭代器大小,可以用back_inserter包装
        cout<<v.size()<<endl;//10
        
        cout<<"replace_copy Test\n";
        int nl[5];//l:[1,3,4,6,6]
        replace_copy(l,l+5,nl,3,1); //将源迭代器范围内元素复制到新范围内,值为3的替换为1
        for(int i=0;i<5;i++)
            cout<<nl[i];
        cout<<endl;//11466
        
        return 0;
    }
  • 相关阅读:
    如何理解css3 -webkit-animation-fill-mode属性值为both时的使用方法
    关于对canvas.beginPath()的理解
    [cf10E]Greedy Change
    [atAGC055B]ABC Supremacy
    [loj6734]图上的游戏
    [gym102412D]The Jump from Height of Self-importance to Height of IQ Level
    [Aizu1410]Draw in Straight Lines
    [Aizu2993]Invariant Tree
    [zoj3990]Tree Equation
    [hdu6326]Monster Hunter
  • 原文地址:https://www.cnblogs.com/FlyCat/p/2832949.html
Copyright © 2011-2022 走看看