数据结构与算法分析c++:STL中的向量和表

在c++语言的库中包含了公共数据结构的实现,这部分内容就是我们熟知的标准模板库(Standard Template Library,STL)。

抽象数据类型(abstract data type,ADT)

抽象数据类型是带有一组操作的一些对象的集合。

表ADT
对于任何非空表A,Ai是Ai-1的后继,Ai-1是Ai的前驱。
1、简单链表
由一系列的不必在内存中相连的 结点组成,每个结点均含有表元素和到包含该元素后继元的结点的链(link),我们称之为next链,最后一个单元的next链指向NULL。
2、双向链表
将链表中的每个结点都添加一个指向上一项的链接,称这种链表为双向链表。

STL中的向量和表

1、对所有STL容器都适用的方法:

· int size() const :返回容器内元素的个数;
· void clear() :删除容器内的所有元素;
· bool empty() :如果容器内没有元素返回true,反之返回false;

2、vector和list都支持常量时间内在表的末尾添加、删除对象:

· void push_back(const object &x) :表末尾添加对象x;
· void pop_back() :删除表末尾对象;

3、vector和list都支持常量时间内访问表的前端和末端

· const object &back() const :返回表末端对象;
· const object &front() const :返回表前端对象;

4、双向链表支持表前端高效改变,但vector不支持

· void push_front(const object &x) :在list前端添加x;
· void pop_front() :在list前端删除对象;

5、vector的一些特有方法

· object &operator[](int index) :返回vector中index位置的对象,不含边界检查;
· object &at(int index) :返回vector中index索引位置的对象,包含边界检查;
· int capacity() const :返回vector内部容量;
· void reserve(int newCapacity) :设定vector新容量;

6、迭代器iterator

· iterator begin() :返回指向容器第一项的一个适当的迭代器;
· iterator end() :返回指向容器终止标志(最后一项后面的位置)的迭代器;
· iterator insert(iterator pos, const object &x) :添加对象x到表中迭代器pos所指位置之前的位置;
· iterator erase(iterator pos) :删除迭代器所指位置的对象,返回值是调用之前pos所指元素的下一个位置元素的位置;
· iterator erase(iterator start, iterator end) :删除从位置start到位置end(不包含end)的所有元素;

7、const_iterator和iterator

· *const_iterator不能位于“=”左端,即不可以改变其值;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

家有一枚袁宝

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值