码迷,mamicode.com
首页 > 编程语言 > 详细

C++ std::list 和 std::forward_list 的差别及其成员函数差异对比

时间:2019-12-21 11:47:19      阅读:115      评论:0      收藏:0      [点我收藏+]

标签:names   main   push   col   tps   连接   http   round   表连接   

主要差别:

list 是双向链表,forward_list 是双向链表。

 

成员函数差异:

函数名 list forward_list
back() has no
size() has no
insert() has no
emplace() has no
erase() has no
push_back() has no
emplace_back() has no
splice() has no
     
before_begin() no has
cbefore_begin() no has
insert_after() no has
emplace_after() no has
erase_after() no has
splice_after() no has
     

 

 

 

* forward_list 中设计的一系列 xxx_after() 的原因:

其中的元素仅知道后面的元素,不知道前面的元素。(单向链表的特性)所以类似于 insert 这样的操作,需要指定前一个元素的迭代器,然后执行插入,才可以把整个链表连接起来。

https://www.cnblogs.com/wuchanming/p/3915567.html

测试代码:

#include <iostream>
#include <string>
#include <list>
#include <forward_list>

using namespace std;

int main()
{
	
	list<int>			lis5 = {1,2,3};
	forward_list<int>	flis5 = { 1,2,3 };

	//////////////////////////////////////////////////////////////////////////
	
	lis5.insert(lis5.begin(), 44); // 44 1 2 3, 相当于 “insert_before”,不过并没有这个函数。
	flis5.insert_after(flis5.begin(), 44); // 1 44 2 3 

}

  

 

C++ std::list 和 std::forward_list 的差别及其成员函数差异对比

标签:names   main   push   col   tps   连接   http   round   表连接   

原文地址:https://www.cnblogs.com/alexYuin/p/12076306.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!