vector的用法
只想用最简单的文字将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;
}