天天看點

STL中list詳解

參考: STL中list詳解

實際上,list容器就是一個雙向連結清單,可以高效地進行插入删除元素。

1、預設構造:

std::list<int> first;  // empty list of ints      

2、傳回疊代器類的函數:

正向疊代器  std::list::begin	std::list::end
反向疊代器  std::list::rbegin	std::list::rend      

3、list的容量相關函數

std::list::empty      bool empty() const noexcept;   //判空;
std::list::size	    size_type size() const noexcept;  //傳回容器的大小;
void resize (size_type n);  //如果n<容器目前的size,則将容器的size調整為n,隻保留前n個值      

4、修改lsit的函數

push_back:

std::list::push_back   	void push_back (const value_type& val);  //從尾部增加一個元素,size()+1;
std::list::push_front   void push_front (const value_type& val);  //從頭部增加一個元素,size()+1;
std::list::pop_front	void pop_front();    //删除第一個元素,size()-1;
std::list::pop_back	void pop_back();    //删除最後一個元素,size()-1;      

insert:

single element (1): iterator insert (iterator position, const value_type& val);
fill (2):   void insert (iterator position, size_type n, const value_type& val);
range (3): template <class InputIterator> void insert (iterator position, InputIterator first, InputIterator last);      

erase:

iterator erase (const_iterator position);
iterator erase (const_iterator first, const_iterator last);      

clear:

void clear() noexcept;  //産出所有元素,并且将size置零      

5、操作類函數

sort:

void sort();   //将元素非減排序;
template <class Compare> void sort (Compare comp);  //按照comp的規則進行排序;      

remove:

void remove (const value_type& val);  //删除隻為val的元素,将size減掉元素值等于val的數量;