c++中Vector的使用

      在c++中我们对数组的长度一直都很难确定,这也是一个困扰我们的问题,所以出现的指针,让我们动态的分配内存;但是这样易导致数组越界,导致程序崩溃;

      这时我们的vector就出现了,关于vector我不想多说,我假设大家都了解temlplate 和 STL。各位在任何一本C++的书上都可以找的到这些内容的(如果没有,那赶快把它扔掉)。那为什么是vector呢?我们知道vector提供了operator[]函数,可以像数组一样的操作,而且还有边界检查,动态改变大小。(从这点上deque也是可以的)。vector本来就是可以用来代替一维数组的,同时vector<vector<E>>表示的是二维数组;

一:分析一下vector表示一维数组:

1.Constructors 构造函数

vector<int> v1; //构造一个空的vector

vector<int> v1( 5, 42 ); //构造了一个包含5个值为42的元素的Vector

2.Operators 对vector进行赋值或比较

C++ Vectors能够使用标准运算符: ==, !=, <=, >=, <, 和 >.

要访问vector中的某特定位置的元素可以使用 [] 操作符.

3.back() 返回最末一个元素

4.front() 返回第一个元素的引用

5.clear() 清空所有元素

6.insert(i) 插入元素到Vector中

7.pop_back() 移除最后一个元素

8.push_back(i) 在Vector最后添加一个元素

9.size() 返回Vector元素数量的大小

10.resize() 改变Vector元素数量的大小


二:分析vector<vector<>>表示二维数组:

          申明:外部的vector下面将被1取代,内部的用2表示;

       解释:一个存放vector元素的vector容器;

vector v1;

       vector<vector<>> myarray;  //注意myarray表示的是一个vector,所以可以使用上面的常用方法;     当然也可以用[][]表示一个二维数组;

       myarray.push_back(v1); //表示向1中添加一个元素,同时表示二维数组的一行;

        总结:vector<vector<>>声明的变量中可以无限的加入vector变量,所以它的不定,同时vector中的大小也不定,所以列的大小也不相同;

一个运行的程序:

#include<iostream>
#include<vector>
using namespace std;
void main(){
//Vector<Vector<>>
//表示Vector中的元素是Vector,
//所以向外面的Vector中放入Vector的个数为列的个数,即是外部的Vector的size,同时是二维数组的行,
vector<int> v1 =  vector<int>(3);
cout << v1.size() << endl;
vector <vector <int> > myarray;
int a[10];
vector<int> b;
for (int i = 0; i<10; i++)
{
a[i] = i;
b.push_back(a[i]);
}
myarray.push_back(b);//注意myarray的实例是vector<int>,我搞错了
cout << myarray[0].back() << "  " << myarray[0].front() << endl;
for (vector<int>::iterator iter = myarray[0].begin(); iter != myarray[0].end(); iter++)
{
cout << *iter << endl;
}
cout << myarray.size() << endl;    //代表行,也就是外面的Vector的元素的个数,也就是内部Vector的个数
cout << myarray[0].size() << endl;   //代表内部第0个数组的长度
return ;
}


      

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值