STL基本顺序容器

本文详细介绍了C++中list、vector及deque三种容器的基本操作,包括如何在序列头部和尾部插入元素、如何清除容器中的所有元素以及如何比较两个容器是否相等内容。

list ,vector,deque

c.push_back() //插入序列尾

c.push_front() //插入序列首

c.clear(); 清除所有

c.front() 等价与 *(c.begin())

c1 == c2 等价于 c1.size == c2.size,并且每个元素相等

### STL顺序容器的种类 STL 提供了几种常用的顺序容器,这些容器以严格的线性形式组织元素。以下是主要的顺序容器及其特点: #### 1. `vector` `vector` 是一种动态数组,支持随机访问,并将元素存储在连续的内存空间中。由于其内部实现方式,在中间插入或删除元素较为耗时[^1]。然而,它提供了高效的尾部插入和删除操作。 #### 2. `deque` (双端队列) `deque` 支持在两端快速添加或移除元素,类似于双向链表的行为,但在某些情况下仍能提供随机访问的支持。尽管它的底层实现可能不是完全连续的内存块,但它仍然允许通过索引访问元素[^1]。 #### 3. `list` (双向链表) `list` 使用双向链表来存储元素,这意味着它可以高效地在任意位置执行插入和删除操作。不过,由于它是链式结构,无法像 `vector` 和 `deque` 那样支持随机访问[^4]。 #### 4. `forward_list` (单向链表) `forward_list` 是 C++11 引入的一种优化版本的单向链表。为了提高效率,它省略了一些功能(如不支持反向遍历),甚至没有内置的 `size()` 方法,从而减少了不必要的开销[^1]。 #### 5. `array` (静态数组) 虽然严格来说 `std::array` 不完全是传统意义上的“顺序容器”,因为它是一个固定大小的容器模板类;但从行为上看,它也可以被视作一种简单的顺序容器,适用于已知大小的情况下的场景[^4]。 综上所述,常见的 STL 顺序容器主要包括:`vector`, `deque`, `list`, `forward_list` 及 `array`. ```cpp #include <iostream> #include <vector> #include <deque> #include <list> #include <forward_list> #include <array> int main() { std::vector<int> vec = {1, 2, 3}; std::deque<int> dq = {4, 5, 6}; std::list<int> lst = {7, 8, 9}; std::forward_list<int> flst = {10, 11, 12}; std::array<int, 3> arr = {13, 14, 15}; // 打印 vector for(auto v : vec){ std::cout << v << ' '; } std::cout << '\n'; return 0; } ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值