C++ List(双向链表)

打印 上一主题 下一主题

主题 1857|帖子 1857|积分 5571

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
是一个线性链表结构,它的数据由若干个节点构成,每一个节点都包括一个     信息块(即实际存储的数据)、一个前驱指针和一个后驱指针。它无需分配指定     的内存巨细且可以任意伸缩,这是因为它存储在非连续的内存空间中,并且由指针将有序的元素链接起来。     由于其结构的原因,  list   随机检索的性能非常的不好,因为它不像  vector   那     样直接找到元素的地点,而是要从头一个一个的次序查找,这样目的元素越靠后,     它的检索时间就越长。检索时间与目的元素的位置成正比。     固然随机检索的速度不敷快,但是它可以敏捷地在任何节点进行插入和删除     操作。因为  list   的每个节点保存着它在链表中的位置,插入或删除一个元素仅对     最多三个元素有所影响,不像  vector   会对操作点之后的所有元素的存储地点都有     所影响,这一点是  vector   不可比拟的。     list   的特点:     (1)   不使用连续的内存空间这样可以随意地进举措态操作;     (2)   可以在内部任何位置快速地插入或删除,固然也可以在两头进行  push  和  pop   。     (3)   不能进行内部的随机访问,即不支持  [ ]   操作符和  vector.at()   ;     Lists  将元素按次序储存在链表中,与向量  (vectors)  相比,它允许快速的插入     和删除,但是随机访问却比力慢  .     1.assign()   给  list  赋值     语法  :     void assign( input_iterator start, input_iterator end );     //  以迭代器  start  和  end  指示的范围为  list  赋值     void assign( size_type num, const TYPE &val );     //  赋值  num  个以  val  为值的元素。     2.back()   返回末了一个元素的引用     3.begin()   返回指向第一个元素的迭代器     4.clear()   删除所有元素     5.empty()   如果  list  是空的则返回  true     6.end()   返回末端的迭代器     7.erase()   删除一个元素     语法:     iterator erase( iterator loc );//  删除  loc  处的元素     iterator erase( iterator start, iterator end ); //  删除  start  和  end  之间的元素     8.front()   返回第一个元素的引用     9.get_allocator()   返回  list  的配置器     10.insert()   插入一个元素到  list  中     语法:     iterator insert( iterator loc, const TYPE &val );     //  在指定位置  loc  前插入值为  val  的元素  ,  返回指向这个元素的迭代器  ,     void insert( iterator loc, size_type num, const TYPE &val );     //  定位置  loc  前插入  num  个值为  val  的元素     void insert( iterator loc, input_iterator start, input_iterator end );     //  在指定位置  loc  前插入区间  [start, end)  的所有元素     11.max_size()   返回  list  能容纳的最大元素数量     12.merge()   合并两个  list     语法  :     void merge( list &lst );//  把本身和  lst  链表连接在一起     void merge( list &lst, Comp compfunction );     //  指定  compfunction  ,则将指定函数作为比力的依据。     13.pop_back()   删除末了一个元素     14.pop_front()   删除第一个元素     15.push_back()   在  list  的末端添加一个元素     16.push_front()   在  list  的头部添加一个元素     17.rbegin()   返回指向第一个元素的逆向迭代器     18.remove()   从  list  删除元素     语法  :     void remove( const TYPE &val );     //  删除链表中所有值为  val  的元素     19.remove_if()   按指定条件删除元素     20.rend()   指向  list  末端的逆向迭代器     21.resize()   改变  list  的巨细     语法  :     void resize( size_type num, TYPE val );     //  把  list  的巨细改变到  num  。被加入的多余的元素都被赋值为  val22.     22.reverse()   把  list  的元素倒转     23.size()   返回  list  中的元素个数     24.sort()   给  list  排序     语法  :     void sort();//  为链表排序,默认是升序     void sort( Comp compfunction );//  接纳指定函数  compfunction  来判定两个元素的巨细。     25.splice()   合并两个  list     语法  :     void splice( iterator pos, list &lst );//  把  lst  连接到  pos  的位置     void splice( iterator pos, list &lst, iterator del );//  插入  lst  中  del  所指元素到现链表的  pos  上     void splice( iterator pos, list &lst, iterator start, iterator end );//  用  start  和  end  指定范围。     26.swap()   交换两个  list     语法:     void swap( list &lst );//   交换  lst  和现链表中的元素     27.unique()   删除  list  中重复的元素     语法  :     void unique();//  删除链表中所有重复的元素     void unique( BinPred pr );//   指定  pr  ,则使用  pr  来判定是否删除。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

石小疯

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表