只想用最简单的文字将vector表现出来,仅此而已,我依然是那只刚出发的小菜鸟,每天对自己来说都是新的一天……
//------------------------------------------------------------------------------
// Copyright (C), 2008-2009, Zhengzz Co.,Ltd,All Rights Reserved
//
// FileName: Vector.cpp
//
// Author: zhengzz
//
// Date: 2009-06-10
//
// Description: Vector的用法
//
// History: <author>zhengzongzhao<time>2009-06-10<version>1.0
//
//------------------------------------------------------------------------------
#include <string>
#include <vector>
// 这句一定要加上,否则会出现vector未声明的错误
using namespace std;
int main()
{
// 声明一个int向量以替代一维数组
// 即相当于声明一个int数组a[],大小没有指定,可以动态添加或者删除
vector <int > a;
int nTemp;
// push_back
printf("push_back------------------------------------/n");
nTemp = 5;
a.push_back(nTemp);
printf("a[0]为%d/n",a[0]);
nTemp = 6;
a.push_back(nTemp);
printf("a[1]为%d/n", a[1]);
// at
printf("at-------------------------------------------/n");
printf("位置1的数据位为%d/n",a.at(1));
// capacity
printf("capacity-------------------------------------/n");
printf("当前vector分配的大小为%d/n", a.capacity());
nTemp = 7;
a.push_back(nTemp);
printf("当前vector分配的大小为%d/n", a.capacity());
// size 和 resize
printf("size-----------------------------------------/n");
printf("当前vector使用的数据大小为%d/n", a.size());
printf("a[2]为%d/n", a[2]);
a.resize(4);
printf("当前vector使用的数据大小为%d/n", a.size());
printf("a[3]为%d/n", a[3]); // 比当前要大,则填充默认值
printf("resize---------------------------------------/n");
a.resize(2);
printf("当前vector使用的数据大小为%d/n", a.size());
//printf("a[2]为%d/n", a[2]); // 此时如果加上这句,则会引起访问越界的错误
// max_size
printf("max_size-------------------------------------/n");
printf("vector最大可以为%d/n", a.max_size());
// reserve
printf("reserve--------------------------------------/n");
a.reserve(10);
printf("当前vector分配的大小为%d/n", a.capacity());
// printf("a[8]为%d/n", a[8]); // 分配了大小但不代表就能访问的,会产生访问越界
printf("当前vector使用的数据大小为%d/n", a.size());
printf("clear----------------------------------------/n");
a.clear();
printf("当前vector分配的大小为%d/n", a.capacity());
printf("当前vector使用的数据大小为%d/n", a.size());
getchar();
return 0;
}
其他的一些函数调用:
1.push_back 在数组的最后添加一个数据
2.pop_back 去掉数组的最后一个数据
3.at 得到编号位置的数据
4.begin 得到数组头的指针
5.end 得到数组的最后一个单元+1的指针
6.front 得到数组头的引用
7.back 得到数组的最后一个单元的引用
8.max_size 得到vector最大可以是多大
9.capacity 当前vector分配的大小
10.size 当前使用数据的大小
11.resize 改变当前使用数据的大小,如果它比当前使用的大,者填充默认值
12.reserve 改变当前vecotr所分配空间的大小
13.erase 删除指针指向的数据项
14.clear 清空当前的vector
15.rbegin 将vector反转后的开始指针返回(其实就是原来的end-1)
16.rend 将vector反转构的结束指针返回(其实就是原来的begin-1)
17.empty 判断vector是否为空
18.swap 与另一个vector交换数