- vector是一种向量类型,它是一种对象实体,可以容纳许多种其他类型实体,称其为容器。vector是c++STL的重要一员,使用时包含头文件#include<vector>
- vector可以有四种定义方式
(1)vector<int> a(10);//定义了10个整数元素的向量,但并没有给出初值,vector<T>是模板形式, T可以是任何合法的数据类型
(2)vector<int> b(10, 1);//定义了10个整数元素的向量,且每个元素的初值为1,而这种形式是数组难以做到的,数组只能通过循环来成批的赋给相同的初值
(3)vector<int> c(b);//用另一个现成的向量来创建一个向量
(4)vector<int> d(b.begin(), b.begin+3);//定义了其值依次为b向量中第0个到第二个(共3个)元素的向量
3.vector输出元素的两种循环方式,例
int a[7] = {1,2,5,3,7,9,8};
voctor<int> v(a, a + 7);//数组的长度也可由sizeof(a)/sizeof(a[0])确定
//循环方式一
for(int i = 0; i < v.size(); i++)
cout << v[i] << " ";
//循环方式二
for(vector<int> :: iterator it = v.begin(); it != v.end(); it++)
cout << *it << " ";//*it是指针间访形式,他的意义是it指向的元素值
向量在c++编程中是一种是频率很高的数据类型,不仅仅是因为数据的顺序排列性在生活中常见,还因为向量有一些整体赋值、判空和元素添加等,特别是向量可以自动伸展,容量可以自动增大,使得对一些不确定数量的顺序性操作数据,带来了极大的方便
<span style="font-size:14px;"> 1>. a.size() //获取向量中的元素个数
2>. a.empty() //判断向量是否为空
3>. a.clear() //清空向量中的元素
4>. 复制
a = b ; //将b向量复制到a向量中
5>. 比较
保持 ==、!=、>、>=、<、<= 的惯有含义 ;
如: a == b ; //a向量与b向量比较, 相等则返回1
6>. 插入 - insert
①、 a.insert(a.begin(), 1000); //将1000插入到向量a的起始位置前
②、 a.insert(a.begin(), 3, 1000) ; //将1000分别插入到向量元素位置的0-2处(共3个元素)
③、 vector<int> a(5, 1) ;
vector<int> b(10) ;
b.insert(b.begin(), a.begin(), a.end()) ; //将a.begin(), a.end()之间的全部元素插入到b.begin()前
7>. 删除 - erase
①、 b.erase(b.begin()) ; //将起始位置的元素删除
②、 b.erase(b.begin(), b.begin()+3) ; //将(b.begin(), b.begin()+3)之间的元素删除
8>. 交换 - swap
b.swap(a) ; //a向量与b向量进行交换</span>
对于二维向量vector<vector<T>>
如果一个向量的每一个元素是一个向量,则称为二维向量
例:vector<vector<int> > a;//这里,两个“>”间的空格是不可少的
vector< vector<int> > b(10, vector<int>(5)); //创建一个10*5的int型二维向量
实际上创建的是一个向量中元素为向量的向量。同样可以根据一维向量的相关特性对二维向量进行操作。
</pre><pre name="code" class="cpp"><span style="font-size:14px;">#include<iostream>
#include<vector>
using namespace std ;
int main()
{
vector< vector<int> > b(10, vector<int>(5, 0)) ;
//对部分数据进行输入
cin>>b[1][1] ;
cin>>b[2][2] ;
cin>>b[3][3];
//全部输出
int m, n ;
for(m=0; m<b.size(); m++) //b.size()获取行向量的大小
{
for(n=0; n<b[m].size(); n++) //获取向量中具体每个向量的大小
cout<<b[m][n]<<" " ;
cout<<"\n" ;
}
return 0;
}</span>
这些就是一些小小的关于vector的理解了哈