向量
Posted dec-f97
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了向量相关的知识,希望对你有一定的参考价值。
数据结构:数据项的结构化集合,数据项之间的相互联系及作用。
数据结构大致划分为三大类:线性结构,半线性结构,非线性结构。
最基本的线性结构统称为 序列(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() 删除容器中的全部元素。
以上是关于向量的主要内容,如果未能解决你的问题,请参考以下文章