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

来源:互联网 发布:淘宝鹊桥推广如何 编辑:程序博客网 时间:2024/06/16 02:02

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风格基于指针的数组。

 

 

 

 

原创粉丝点击