C++ 20 中 vector list stack queue 分别从功能 效率等全方面分析其差异
在 C++20 中,std::vector、std::list、std::stack 和 std::queue 是常用的容器或容器适配器。以下从功能、效率、使用场景等方面对它们进行详细对比。
- 功能对比
2.效率对比
存储和访问
扩容效率 - std::vector: 需要动态扩容,每次扩容会重新分配内存并拷贝已有元素,摊销时间复杂度 O(n)。 std::list:
不需要扩容,因为是链表结构,插入时直接动态分配节点。 std::stack 和 std::queue: 依赖底层容器(通常是
std::deque),扩容效率由其决定,std::deque 的扩容无需整体拷贝数据。