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;
}

 

posted @ 2009-06-10 11:15  zhengzongzhao  阅读(258)  评论(0编辑  收藏  举报