C++ 数据结构(二)向量(1)接口与实现

本文探讨了C++中的向量抽象数据类型(ADT),从数组到向量的概念转变,强调了向量作为线性数组的优势,包括元素的直接访问、类型不限以及简化管理。文章介绍了向量的接口设计,并讨论了Vector模板类的构造与析构,特别是基于复制的构造方法。
摘要由CSDN通过智能技术生成

来源:我的博客站 OceanicKang |《C++ 数据结构(二)向量(1)接口与实现》

上一篇:《C++ 数据结构(一)绪论(6)动态规划(2)》

ADT VS DS

抽象数据类型(Abstract Data Type):数据模型 + 定义在该模型上的一组操作

抽象定义 外部的逻辑特性 操作 & 语义
一种定义 不考虑时间复杂度 不涉及数据的存储方式

数据结构(Data Structure):基于某种特定语言,实现 ADT 的一整套算法

具体实现 内部的表示与实现 完整的算法
多种实现 与复杂度密切相关 要考虑数据的具体存储机制

1.png

向量 ADT

从数组到向量

在 C/C++ 等高级语言中,数组 A[] 中的元素与 [0, n) 内的编号一一对应

2.png

反之,每个元素均由(非负)编号唯一指代,并可直接访问

A[i] 的物理地址 = A + i * s,s 为单个元素占用的空间量

故亦称作线性数组(linear array)

向量是数组的抽象与泛化,由一组元素按线性次序封装而成

1、各元素与 [0, n) 内的秩(rank)一一对应 // 循秩访问(call-by-rank)

2、元素的类型不限于基本类型

3、操作、管理维护更加简化、统一与安全

4、可更为便捷地参与复杂数据结构的定制与实现

向量接口

操作 功能 适用对象
size() 报告向量当前的规模(元素总数) 向量
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值