STL基础4:deque

#include <iostream>
#include <queue>
#include <string>

using namespace std;
#define  N_K  10

struct Data_s{
    int number;
    char name[20];
};

typedef struct Data_s Data_t;

void makeData(Data_t *d)
{    
    int i;
    for (i=0;i<N_K;i++)
    {
        d[i].number = i;
        sprintf(d[i].name,"name %02d",i);
    }
}

template<typename T>
struct display{
    void operator()(const T &x)const
    {
        cout<<x.number<<" "<<x.name<<endl;
    }
};

int main()
{
    Data_t d[N_K];
    deque<Data_t> dd;
    int i;
    makeData(d);
    for (i=0;i<N_K;i++)
    {
        dd.push_back(d[i]);

    }
    cout<<"size "<<dd.size()<<endl;
    
    cout<<"1.first "<<dd[0].number<<endl;

    dd.pop_front();
    cout<<"2.first "<<dd[0].number<<endl;
    dd.pop_front();
    dd.pop_front();
    dd.pop_front();
    for (i=0;i<N_K;i++)
    {
        dd.push_back(d[i]);
        
    }
    cout<<"size "<<dd.size()<<endl;

    for_each(dd.begin(),dd.end(),display<Data_t>());


    return 0;
}

 

posted on 2018-02-12 12:19  阮減显  阅读(112)  评论(0)    收藏  举报

导航