C++ List

C++11中的std::list是一种双向链表容器。在底层,std::list的每个元素都被包装在一个节点内,每个节点包括一个指向前一个节点的指针、一个指向后一个节点的指针以及元素本身。

下面是std::list常用的功能及示例:

  1. 插入元素
cpp 复制代码
#include <iostream>
#include <list>

int main() {
    std::list<int> mylist = {1, 2, 3};
    
    // 在头部插入元素
    mylist.push_front(0);
    
    // 在尾部插入元素
    mylist.push_back(4);

    // 在指定位置插入元素
    auto it = mylist.begin();
    ++it; // 指向第二个元素
    mylist.insert(it, 5);
    
    for (const auto& elem : mylist) {
        std::cout << elem << " ";
    }
    
    return 0;
}
  1. 删除元素
cpp 复制代码
#include <iostream>
#include <list>

int main() {
    std::list<int> mylist = {1, 2, 3, 4, 5};
    
    // 删除头部元素
    mylist.pop_front();
    
    // 删除尾部元素
    mylist.pop_back();
    
    // 删除指定位置的元素
    auto it = mylist.begin();
    ++it; // 指向第二个元素
    mylist.erase(it);
    
    for (const auto& elem : mylist) {
        std::cout << elem << " ";
    }
    
    return 0;
}
  1. 遍历列表
cpp 复制代码
#include <iostream>
#include <list>

int main() {
    std::list<int> mylist = {1, 2, 3, 4, 5};
    
    for (auto it = mylist.begin(); it != mylist.end(); ++it) {
        std::cout << *it << " ";
    }
    
    return 0;
}
  1. 反向遍历列表
cpp 复制代码
#include <iostream>
#include <list>

int main() {
    std::list<int> mylist = {1, 2, 3, 4, 5};
    
    for (auto it = mylist.rbegin(); it != mylist.rend(); ++it) {
        std::cout << *it << " ";
    }
    
    return 0;
}

std::list提供了高效的插入和删除操作,但随机访问速度较慢。在需要频繁在中间插入或删除元素时,std::list是一个不错的选择。

相关推荐
AA陈超2 小时前
虚幻引擎5 GAS开发俯视角RPG游戏 P06-14 属性菜单 - 文本值行
c++·游戏·ue5·游戏引擎·虚幻
云知谷2 小时前
【经典书籍】C++ Primer 第15章类虚函数与多态 “友元、异常和其他高级特性” 精华讲解
c语言·开发语言·c++·软件工程·团队开发
weixin_582985183 小时前
OpenCV cv::Mat.type() 以及类型数据转换
c++·opencv·计算机视觉
oioihoii6 小时前
深入理解 C++ 现代类型推导:从 auto 到 decltype 与完美转发
java·开发语言·c++
报错小能手6 小时前
项目——基于C/S架构的预约系统平台 (1)
开发语言·c++·笔记·学习·架构
lingran__6 小时前
算法沉淀第十天(牛客2025秋季算法编程训练联赛2-基础组 和 奇怪的电梯)
c++·算法
oioihoii8 小时前
当无符号与有符号整数相遇:C++中的隐式类型转换陷阱
java·开发语言·c++
Yupureki8 小时前
从零开始的C++学习生活 13:红黑树全面解析
c语言·数据结构·c++·学习·visual studio
2401_876221348 小时前
Euler
c++·数学·算法
赵杰伦cpp10 小时前
C++的继承机制精讲
java·开发语言·c++·后端