码迷,mamicode.com
首页 > 其他好文 > 详细

二、向量

时间:2018-10-07 23:22:27      阅读:217      评论:0      收藏:0      [点我收藏+]

标签:操作符   name   pointer   对应关系   iter   lis   最大   向量   src   

数据结构:数据项的结构化集合,数据项之间的相互联系及作用。

数据结构大致划分为三大类:线性结构,半线性结构,非线性结构。

最基本的线性结构统称为 序列(sequence),根据其中数据项的逻辑次序物理存储地址的对应关系不同,又可进一步的将序列区分为 向量(vector)和 列表(list)。

在向量中,所有数据项的物理存放位置与其逻辑次序完全吻合,此时的逻辑次序也称作 秩(rank);

在列表中,逻辑上相邻的数据项在物理上未必相邻,而是采用间接定址的方式通过封装后的位置相互引用。

 

向量:对数组结构做一般性推广,使得其特征更具普遍性。向量(vector)就是线性数组的一中抽象与泛化,它也是由具有线性次序的一组元素构成的集合,其中的元素分别由秩相互区分。

 

ADT接口

技术分享图片

 

vector< 类型 > 标识符(最大容量,初始全部值);

 

vector对象最重要的几种操作
1. v.push_back(t)    在容器的最后加入一个值为t的数据,容器的size变大。
    另外list有push_front()函数,在前端插入,后面的元素下标依次增大。
2. v.size()        返回容器中数据的个数,size返回对应vector类定义的size_type的值。v.resize(2*v.size)或 v.resize(2*v.size, 99) 将v的容量翻倍(并把新元素的值初始化为99)

3. v.empty()     推断vector是否为空
4. v[n]           返回v中位置为n的元素
5. v.insert(pointer,number, content)    向v中pointer指向的位置插入number个content的内容。
    还有v. insert(pointer, content),v.insert(pointer,a[2],a[4])将a[2]到a[4]三个元素插入。
6. v.pop_back()    删除容器的末元素,并不返回该元素。
7.v.erase(pointer1,pointer2) 删除pointer1到pointer2中间(包含pointer1所指)的元素。
   vector中删除一个元素后,此位置以后的元素都须要往前移动一个位置,尽管当前迭代器位置没有自己主动加1,
   可是因为兴许元素的顺次前移,也就相当于迭代器的自己主动指向下一个位置一样。
8. v1==v2          推断v1与v2是否相等。
9. !=、<、<=、>、>=      保持这些操作符惯有含义。
10. vector<typeName>::iterator p=v1.begin( ); p初始值指向v1的第一个元素。*p取所指向元素的值。
      对于const vector<typeName>仅仅能用vector<typeName>::const_iterator类型的指针訪问。
11.   p=v1.end( ); p指向v1的最后一个元素的下一位置。
12.v.clear()      删除容器中的全部元素。12.v.clear()      删除容器中的全部元素。

 

二、向量

标签:操作符   name   pointer   对应关系   iter   lis   最大   向量   src   

原文地址:https://www.cnblogs.com/dec-f97/p/9751791.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!