list 用法

   1. assign用法:

     

       void assign ( Iterator first, Iterator last );   //Iterator是任一种容器的泛型指针,list 和vector可
       void assign (  int  n, const T& u );              //u是向list中加入的值,n是u的个数

 

   2.erase用法:

 

      iterator erase ( iterator position );  //删除iterator所指向的元素
   iterator erase ( iterator first, iterator last );

   //删除first和last之间的元素

 

   样例代码:

   list<Elem>lBackup;
   int  a[5]={1,2,3,4,5};
   vector<Elem> vecRecord(a,a+5);

   lBackup.assign(vecRecord.begin(),vecRecord.end());
   list<Elem>::iterator   iBackup,iTemp;

   iBackup=lBackup.begin();
   iTemp=lBackup.begin();
   advance(iTemp,4);
   lBackup.erase(iBackup,iTemp);

 

   注:如将最后一行代码中的iTemp直接写为iBackup+4则报错.

 

 3.merge用法:

   void merge ( list  x );

  

   注:  调用该函数前,必须将母list排序;该函数可将x中的元素按顺序插入到排好序的母list中去.

 

 4.= 用法:

   整个list 赋值;

 

 5.remove和remove_if

 

   void remove ( const T& value );   // T为list中的数据类型,该函数删除值为value的数据.

 

   void remove_if ( Predicate pred );

   样例代码:

   bool bTest(int x)
  {
    return (x<=10);
  }

   class is_odd
  {
    public:
    bool operator() (const int& value) {return (value%2)==1; }
  };

   lBackup.remove_if(bTest);

   lBackup.remove_if(is_odd());

   注:  remove_if函数删除满足条件的元素.

 

6.reverse用法:

 

  void  reverse();     //该函数将 list 反序.

 

7.sort用法:

  void  sort();        //该函数对 list 排序.

 

8.splice用法.   :该函数与函数insert功能差不多.

 

9.unique用法:

  void   unique();   //使list内无重复元素.

  void unique ( BinaryPredicate binary_pred );

 

  样例代码:

  bool same_integral_part (double first, double second)
  { return ( int(first)==int(second) ); }

  class is_near
  {
  public:
  bool operator() (double first, double second)
  { return (fabs(first-second)<5.0); }
  };

 

  lBackup.unique(same_integral_part);

  lBackup.unique(is_near());

 

10.其余的函数有: back,begin,clear,empty,end,front,insert,max_size,pop_back,pop_front,push_back,push_front,

rbegin,rend,resize,size,swap.这些函数的用法与vector中的同名函数用法相同.


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值