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
相关推荐
科技苑6 小时前
C++ CAS与ABA问题详解,无锁编程的经典陷阱怎么解决?
c++·人工智能
BaiPeter10 小时前
ZPL文件预览
开发语言·c++
悠仁さん13 小时前
【C++】哈希表
c++·算法·散列表
Severus_black15 小时前
【C++初阶】list使用及相关实现,思路顺滑流畅!
c语言·数据结构·c++·stl·list
敲上瘾16 小时前
Qt Widgets入门:项目模板解析与Hello World
开发语言·数据库·c++·qt·ui·qt6.3
二本咕咕-机械转码17 小时前
FreeRTOS深入解析(八)IPC机制之FromISR详解
数据结构·单片机·链表
旖旎夜光18 小时前
【C++ 基础入门】C++ 多态(中):虚函数表、多态原理与动静绑定
开发语言·c++·笔记·学习
旖旎夜光19 小时前
【C++ 基础入门】C++多态(下):单/多继承虚表、多态补充与 21 道高频题
开发语言·c++·笔记·学习
apcipot_rain1 天前
C++转Java日记(03)
java·开发语言·c++
布莱克6051 天前
C++ 中 map 的 insert 与 emplace:key 已存在时会覆盖吗?
开发语言·数据结构·c++·算法·map