C++中顺序容器的常用操作大合集

一、顺序容器比较

容器类型优缺点
vector可变大小数组。支持快速随机访问。在尾部之外的位置插入或删除元素可能很慢。
deque双端队列;支持快速访问;在头和尾部插入/删除速度很快
list双端队列;支持快速访问;在头和尾部插入/删除速度很快
forword_list单向链表;只支持单向顺序访问;在链表任何位置进行insert 或 delete 都很快
array固定大小数组;支持快速随机访问;不能增删元素
string和vector相似的容器;专门用于保存字符;随机访问快;在尾部插入删除速度快

二、顺序容器共用的类型

类型定义:这些类型体现了标准库与机器无关的一些特性

1. size_type

size()函数的返回类型

如果表达式中已经有了size()函数,就不要用int了,这样可以避免混用int和unsigned可能带来的问题。

2. iterator和const_iterator

link

3. 元素类型

value_type
元素类型的引用: reference 或者 const_reference
元素相关的类型别名在泛型编程中非常有用。

三、顺序容器的操作

1. 添加元素

标准库容器在运行时可以动态添加或删除元素来改变容器的大小。

在这里插入图片描述

注意:

  1. 添加元素是拷贝,而非对象本身。就像将对象传递给非引用参数一样,容器中的元素与提供值的对象之间没有任何关联。

2. 访问元素

在这里插入图片描述

注意:

  1. 访问成员函数返回的是引用,如果使用auto变量保存这些函数的返回值,并希望改变元素值,需要将变量定义为引用类型。
      std::vector<int> v{1,2,3};
      if (!v.empty()){
        v.front() = 55;
        auto &c = v.back();
        c = 88;
      }
    
      for (auto x: v){
        std::cout << x << std::endl;
      }
    
    输出结果:
    在这里插入图片描述
  2. 同样的下标操作访问,使用v.at()v[]更安全。

3. 删除元素

在这里插入图片描述

4. 改变容器大小

加粗样式
注意:

容器中添加或者删除元素,可能会导致容器元素指针、引用或迭代器失效。
合理的做法:
每次添加或者删除元素操作之后,重新定位迭代器。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值