c++中的链表list

前言

c++里面的list容器,真的是链表实现,中间元素的插入和删除是 O ( 1 ) O(1) O(1) 时间复杂度的。有必要了解一下它的基本用法。

代码

cpp 复制代码
#include <list>
#include <iostream>


using namespace std;


int main()
{
    list<int> lst{1,3,4,2};
    auto it  = lst.begin();
    it++;

    // 插入元素
    lst.insert(it, {20,30,40}); // 插入到第2个位置
    for(auto item : lst) cout << item << " "; cout << endl; /*[ 1 20 30 40 3 4 2 ]*/

    // 按位置删除元素
    it =  lst.begin();
    advance(it, 1); // 删除第2个元素
    lst.erase(it); 
    for(auto item : lst) cout << item << " "; cout << endl; /*[ 1 30 40 3 4 2 ]*/


    // 按值删除元素
    lst.remove(2); // 删除所有为2的元素
    for(auto item : lst) cout << item << " "; cout << endl; /*[ 1 30 40 3 4 ]*/


    return 0;
}

结果

复制代码
1 20 30 40 3 4 2 
1 30 40 3 4 2
1 30 40 3 4
相关推荐
hPw0eKIqD8 小时前
C++ 模板参数推导问题小记(非推导上下文)
开发语言·c++
程序员爱德华8 小时前
Python与C++:异同点对比
c++·python
普通攻击往后拉8 小时前
Leetcode 206. 反转链表
算法·leetcode·链表
888CC++11 小时前
C语言与C++的区别:从面向过程到面向对象
java·c语言·c++
Darkwanderor13 小时前
Linux系统编程实战项目:模拟实现shell
linux·c++
himobrinehacken13 小时前
揭秘Windows程序启动的神秘之旅
c++·安全
库玛西14 小时前
C++ 运行时多态 :核心总结与原理图解
c语言·c++·笔记
Byron Loong15 小时前
【C++】重定向是什么
开发语言·c++
hansang_IR15 小时前
【题解】LC:Z 算法(Z Algorithm)
c++·算法·字符串
霍霍的袁17 小时前
【C++】模板从入门到进阶(函数模板 + 类模板 + 特化 + 分离编译)
开发语言·c++·visual studio