c++标准库的类模板vector介绍

c++标准库的类模板vector介绍

下面我根据我的学习情况介绍下标准库的类模板vector,它代表一种更健壮的数据类型,提供了许多额外的功能。

C++标准类库提供了模板vector,它使得程序员能够创建一种功能强大并且不容易出错的数据类型。

下面以一个程序的实际例子为例,初识下vector。

// vector_demo.cpp : 定义控制台应用程序的入口点。

//

 

#include "stdafx.h"
#include <iostream>
using std::cout;
using std::cin;
using std::endl;

#include <iomanip>
using std::setw;

#include <vector>
using std::vector;

 

void outputVector(const vector<int>&);
void inputVector(vector<int>&);

int _tmain(intargc, _TCHAR*argv[])
{
    vector<int> integers1(7);      //创建个vector对象,用于保存int类型的值,其中integers1包含了个元素
    vector<int> integers2(10);     //integers2包含了个元素,每个vector对象的所有元素都被设置为
    cout<<integers1.size()<<endl;  //vector的size成员函数获得integers1的大小(元素的个数)
    outputVector(integers1);

    cout<<integers2.size()<<endl;
    outputVector(integers2);

    //输入并打印integers1和integers2
    inputVector(integers1);       //将integers1和integers2传递给inputVector函数,从用户处读取每个vector元素的值,
    inputVector(integers2);       //这个函数利用方括号形成左值,用于保存每个vector元素中的输入值
                  

    outputVector(integers1);
    outputVector(integers2); 

    //对vector对象使用(!=)运算符
    if(integers1 != integers2)
    {
        cout<<"integers1和integers2不相等"<<endl;
    }

    //创建动态数组integers3,用integers1初始化
    //c++标准库的类模板vector可用来创建一个新的vector对象,并用现有的vector对象的内容初始化
    vector<int> integers3(integers1); //创建一个vector对象integers3,并用integers1的副本初始化
    cout<<integers3.size()<<endl;
    outputVector(integers3);

    //重载赋值(=)运算符
    integers1=integers2;
    outputVector(integers1);
    outputVector(integers2);

    //使用相等(==)运算符
    if(integers1==integers2)
    {
         cout<<"integers1和integers2相等"<<endl;
    }

    //用方括号[]创建右值
    cout<<integers1[5];

    //用方括号[]创建左值
    integers1[5]=1000;
    outputVector(integers1);

    //下标数组越界————标准类模板vector在它的成员函数at中提供了边界检查,如果它的实参是一个无效的下标,就会“抛出一个异常”

    //integers1.at(15)=1000;//错误,越界
    system("pause");
    return0;
}

 

void outputVector(const vector<int> &array)
{
    size_ti;  //vector的size成员函数返回一个size_t类型(以免发生编译警告)
    for(i=0; i<array.size(); i++)
    {
         cout<<setw(12)<<array[i];
         if((i+1)%4==0)
         {
           cout<<endl;
         }
    }

    if(i%4!=0)
    {
         cout<<endl;
    }
}

 

void inputVector(vector<int>&array)
{
    for(size_t i=0;i<array.size(); i++)
    {
         cin>>array[i];
    }

}


 

 

小结:本例展示了c++标准类库的类模板vector,它是一个健壮的,可复用的类,能替换C风格基于指针的数组。

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值