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


    主要差别:

    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 
    
    }
    

      

  • 相关阅读:
    mybatis-generator.xml
    模板下载
    任务导出
    订单导出
    创建指定日期任务
    字符串的知识
    数组元素反转
    JVM 中知识
    Redis介绍
    JsonP
  • 原文地址:https://www.cnblogs.com/alexYuin/p/12076306.html
Copyright © 2020-2023  润新知