C++ STL list
原创
huangjinqiang
2025-12-26
std::list 是 C++ STL 提供的双向链表容器,底层由分散的节点通过指针连接而成,每个节点包含前驱和后继指针。它支持在任意位置(通过迭代器)进行 O(1) 时间复杂度的插入与删除,且操作不会使其他迭代器失效,非常适合频繁修改中间元素的场景(如实现 LRU 缓存)。然而,list 不支持随机访问(无法使用下标),遍历时缓存命中率低,且每个节点额外占用两个指针的内存开销。尽管功能强大,但在实际开发中,除非明确需要稳定迭代器或高频中间插入,否则通常优先选用性能更优的 vector。使用 list 无需手动管理内存,安全且高效。   一句话定义 std::list 是 C++ STL 提供的双向链表(doubly linked list)容器,功能上类似: Java 的 LinkedList Python 中没有直接等价物(但你可以用 collections.deque 模拟部分行为) 但它不是数组,而是由节点通过指针连接而成,支持高效的任意位置插入/删除。 为什么用 std::list?(vs 手写链表 or vector) 优势 说明 不用手动管理内存 不用手写 new/delete,STL 自动处理节点分配和释放 双向遍历 每个……
12
0
avatar huangjinqiang 永远相信美好的事情即将发生
- 关注
- 粉丝
- 动态
作者
关注
猜你喜欢
扫一扫左侧二维码 可在手机上进行查看