0
点赞
收藏
分享

微信扫一扫

c++ list

幸福的无所谓 2022-04-14 阅读 74
c++
  • 迭代器失效:erase会导致失效,resize()把list的长度减少,可能就会失效..解决方式就是用之前重新赋值
  • 底层为非连续空间,erase之后当前迭代器失效,但是后面的迭代器不会失效
  • list的构造和析构
    • list( ) | list(size_t n,const T& value=T()) | list(const list<T>& L) | list(Iterator first,Iterator last) | list<int> L{1,2,3,5};
  • 迭代器
    • begin()/end() | rbegin()/rend() | c++11增加了cbegin()/cend() | rcbegin()/rcend()
  • 元素访问
    • front()/back() 如果要访问list中特定的元素,可以用STL提供的find算法,list和vector没有find算法
    • 因为list和vector中的元素都是线性的结构,找一个元素无非就是把元素里的东西遍历一遍,所以就直接用全局的find,而且全局的find支持连续的空间遍历和链式的空间遍历
  • 修改
    • push_back() pop_back() push_front() pop_front()
    • iterator insert(iterator pos,const T& value)/void insert(iterator pos ,size_t n,const T& value)/void insert(iterator pos,Tterator first,Iterator,last)/
    • iterator erase(iterator pos) / iterator erase(iterator firsr,iterator last) void clear()/void swap(list<T>&l)
  • 其他
    • void remove(const T& value) void remove_if(函数指针)把list里满足条件的全删除
    • void unique()去重,有序的情况下才会去重 void sort()排序
举报

相关推荐

C++:list

C++——list

【C++】list

【C++:list】

C++ List

【C++】——list

0 条评论