Chinaunix首页 | 论坛 | 博客
  • 博客访问: 138333
  • 博文数量: 20
  • 博客积分: 551
  • 博客等级: 下士
  • 技术积分: 260
  • 用 户 组: 普通用户
  • 注册时间: 2011-11-28 15:55
文章分类

全部博文(20)

文章存档

2012年(12)

2011年(8)

分类: C/C++

2011-12-15 16:06:20

#include

#include

#include

#include

 

using namespace std;

 

//创建一个list容器的实例LISTINT

typedef list LISTINT;

 

//创建一个list容器的实例LISTCHAR

typedef list LISTCHAR;

 

void main(void)

{

    //--------------------------

    //list容器处理整型数据

    //--------------------------

    //LISTINT创建一个名为listOnelist对象

    LISTINT listOne;

    //声明i为迭代器

    LISTINT::iterator i;

   

    //从前面向listOne容器中添加数据

    listOne.push_front (2);

    listOne.push_front (1);

   

    //从后面向listOne容器中添加数据

    listOne.push_back (3);

    listOne.push_back (4);

   

    //从前向后显示listOne中的数据

    cout<<"listOne.begin()--- listOne.end():"<

    for (i = listOne.begin(); i != listOne.end(); ++i)

        cout << *i << " ";

    cout << endl;

   

    //从后向后显示listOne中的数据

    LISTINT::reverse_iterator ir;

    cout<<"listOne.rbegin()---listOne.rend():"<

    for (ir =listOne.rbegin(); ir!=listOne.rend();ir++) {

        cout << *ir << " ";

    }

    cout << endl;

   

    //使用STLaccumulate(累加)算法

    int result = accumulate(listOne.begin(), listOne.end(),0);

    cout<<"Sum="<

    cout<<"------------------"<

   

    //--------------------------

    //list容器处理字符型数据

    //--------------------------

   

    //LISTCHAR创建一个名为listOnelist对象

    LISTCHAR listTwo;

    //声明i为迭代器

    LISTCHAR::iterator j;

   

    //从前面向listTwo容器中添加数据

    listTwo.push_front ('A');

    listTwo.push_front ('B');

   

    //从后面向listTwo容器中添加数据

    listTwo.push_back ('x');

    listTwo.push_back ('y');

   

    //从前向后显示listTwo中的数据

    cout<<"listTwo.begin()---listTwo.end():"<

    for (j = listTwo.begin(); j != listTwo.end(); ++j)

        cout << char(*j) << " ";

    cout << endl;

   

    //使用STLmax_element算法求listTwo中的最大元素并显示

    j=max_element(listTwo.begin(),listTwo.end());

    cout << "The maximum element in listTwo is: "<

}

 

#include

#include

 

using namespace std;

typedef list INTLIST;

 

//从前向后显示list队列的全部元素

void put_list(INTLIST list, char *name)

{

    INTLIST::iterator plist;

   

    cout << "The contents of " << name << " : ";

    for(plist = list.begin(); plist != list.end(); plist++)

        cout << *plist << " ";

    cout<

}

 

//测试list容器的功能

void main(void)

{

    //list1对象初始为空

    INTLIST list1;

    //list2对象最初有10个值为6的元素

    INTLIST list2(10,6);

    //list3对象最初有3个值为6的元素

    INTLIST list3(list2.begin(),--list2.end());

   

    //声明一个名为i的双向迭代器

    INTLIST::iterator i;

   

    //从前向后显示各list对象的元素

    put_list(list1,"list1");

    put_list(list2,"list2");

    put_list(list3,"list3");

   

    //list1序列后面添加两个元素

    list1.push_back(2);

    list1.push_back(4);

    cout<<"list1.push_back(2) and list1.push_back(4):"<

    put_list(list1,"list1");

   

    //list1序列前面添加两个元素

    list1.push_front(5);

    list1.push_front(7);

    cout<<"list1.push_front(5) and list1.push_front(7):"<

    put_list(list1,"list1");

   

    //list1序列中间插入数据

    list1.insert(++list1.begin(),3,9);

    cout<<"list1.insert(list1.begin()+1,3,9):"<

    put_list(list1,"list1");

   

    //测试引用类函数

    cout<<"list1.front()="<

    cout<<"list1.back()="<

   

    //list1序列的前后各移去一个元素

    list1.pop_front();

    list1.pop_back();

    cout<<"list1.pop_front() and list1.pop_back():"<

    put_list(list1,"list1");

   

    //清除list1中的第2个元素

    list1.erase(++list1.begin());

    cout<<"list1.erase(++list1.begin()):"<

    put_list(list1,"list1");

   

    //list2赋值并显示

    list2.assign(8,1);

    cout<<"list2.assign(8,1):"<

    put_list(list2,"list2");

   

    //显示序列的状态信息

    cout<<"list1.max_size(): "<

    cout<<"list1.size(): "<

    cout<<"list1.empty(): "<

   

    //list序列容器的运算

    put_list(list1,"list1");

    put_list(list3,"list3");

    cout<<"list1>list3: "<<(list1>list3)<

    cout<<"list1

   

    //list1容器排序

    list1.sort();

    put_list(list1,"list1");

   

    //结合处理

    list1.splice(++list1.begin(), list3);

    put_list(list1,"list1");

    put_list(list3,"list3");

}

 

 

阅读(1721) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~