List的几个小点

目录

一、构造

二、修改

三、operations


一、构造

std::list<int> first;                               
std::list<int> second (4,100);                       
std::list<int> third (second.begin(),second.end());  
std::list<int> fourth (third);
也是经典的四个构造

二、修改

1.assign

void assign (InputIterator first, InputIterator last);
list1.assign(list2.begin(),list2.end());//从别的list里面拿来修改


int myints[]={1776,7,4};//从数组里面拿
first.assign (myints,myints+3);

可以把原list修改成另一个list

2.resize

std::list<int> mylist;

for (int i=1; i<10; ++i) mylist.push_back(i);

mylist.resize(5);
mylist.resize(8,100);
mylist.resize(12);


1 2 3 4 5 100 100 100 0 0 0 0

三、operations

1.remove

int myints[]= {17,89,7,14};
std::list<int> mylist (myints,myints+4);
 mylist.remove(89);
//可以移除某个元素

2.splice

void splice (iterator position, list& x);//把整个list移到另一个list中,原list变为空

void splice (iterator position, list& x, iterator i);//某个节点移动到另一个list中
	
void splice (iterator position, list& x, iterator first, iterator last);//某段一刀list中

3.sort//list只能用自己的sort,因为list是bidirectional iterator,而sort要求RandomAccessIterator

升序 < less 
降序 >  greater
greater<int> gt;
list.sort(gt);
或
list.sort(greater<int>());//使用匿名变量

4.merge(用的比较少)

void merge (list& x);

template <class Compare>
void merge (list& x, Compare comp);


bool mycomparison (double first, double second)
{ return ( int(first)<int(second) ); }

  std::list<double> first, second;

  first.push_back (3.1);
  first.push_back (2.2);
  first.push_back (2.9);

  second.push_back (3.7);
  second.push_back (7.1);
  second.push_back (1.4);

  first.sort();
  second.sort();

  first.merge(second);

  // (second is now empty) 合并以后被合并的list会变空

  second.push_back (2.1);

  first.merge(second,mycomparison);

5.unique

void unique();//去重,但是和merge一样要求排好序

6.reverse

void reverse();//逆置代码

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值