当前所在位置:珠峰网资料 >> 计算机 >> 计算机等级考试 >> 正文
c++STLlist容器成员函数应用实例
发布时间:2010/6/1 9:31:02 来源:城市学习网 编辑:ziteng
  #include <iostream>
  #include <list>
  #include <iterator>
  using namespace std;
  // insert()和splice()的区别在于,insert()将原始数据的副本插入到目标地址,
  // splice() 则将原始区间移到目标地址
  // unique() 只能压缩相邻的相同值,如2,2,2会压缩为一个2,而2,3,2 则无法压缩,因此需要先排序
  int main()
  {
  int stuff[5]={1,3,5,7,9};
  int more[6] ={2,4,6,8,2,4};
  ostream_iterator<int, char> out(cout, " ");
  list<int> onelist(5, 2);// 声明一个双向链表onelist,含有5个整数2
  list<int> twolist;// 声明一个空的双向链表twolist
  twolist.insert(twolist.begin(), stuff, stuff+5);// 将stuff数组元素插入到链表twolist首部
  list<int> threelist(twolist);// 声明一个双向链表threelist,与twolist一样元素
  threelist.insert(threelist.end(), more, more+6);// 将more数组元素插入到链表threelist尾部
  copy(onelist.begin(), onelist.end(), out);cout << "-> oneList" << endl;
  copy(twolist.begin(), twolist.end(), out);cout << "-> twoList" << endl;
  copy(threelist.begin(), threelist.end(), out);cout << "-> threeList" << endl;
  threelist.remove(2);// 删除所有元素等于2的
  copy(threelist.begin(), threelist.end(), out);
  cout << "-> remove(2) from threeList" << endl;
  threelist.splice(threelist.begin(),onelist);//把onelist结合在threelist前面,onelist被清空
  copy(threelist.begin(), threelist.end(), out);
  cout << "-> splice(beginPos,onelist) from threeList" << endl;
  copy(onelist.begin(), onelist.end(), out);
  cout << "-> splice()后的oneList为空链表" << endl;
  threelist.unique();// 连续相同的元素被压缩为单个元素
  copy(threelist.begin(), threelist.end(), out);
  cout << "-> threeList.unique() 连续相同的元素被压缩为单个元素" << endl;
  threelist.sort();
  threelist.unique();
  copy(threelist.begin(), threelist.end(), out);
  cout << "-> threelist.sort() and threeList.unique() " << endl;
  twolist.sort();
  threelist.merge(twolist);// 链表合并前必须已排序,合并后twolist被清空
  copy(threelist.begin(), threelist.end(), out);
  cout << "-> twolist.sort() and threeList.merge(twolist) " << endl;
  copy(twolist.begin(), twolist.end(), out);cout << "-> merge()后的twoList为空链表" << endl;
  return 0;
  }
广告合作:400-664-0084 全国热线:400-664-0084
Copyright 2010 - 2017 www.my8848.com 珠峰网 粤ICP备15066211号
珠峰网 版权所有 All Rights Reserved