C++vector容器


我们在声明数组的时候,采用的是datatype array[len]的形式,数组在分配之后,不能调整大小,删除和插入数据时操作十分的繁琐,虽然可以采用链表,但是链表的操作更麻烦,我们希望有更简单的方法。

与string类一样, 向量vector 同属于STL(Standard Template Library,标准模板库)中的定义的类, vector是一个封装了动态数组的顺序容器(Sequence Container),它能够存放各种类型的数据和对象。

可以简单的认为vector容器是一个能够存放任意类型的动态数组,与数组相比,vector容器的优点在于它能够根据需要自动调整的大小,随时放入更多的元素。此外, vector也提供了成员函数对自身进行操作。

一、容器的定义

首先,如果要在程序中使用vector容器,必须包含头文件 <vector>。如下:

#include <vector>

vector类是一个模板类,位于std命名空间内,为方便使用还需要增加:

using namespace std;

声明一个容器很简单:

vector<int> vi;              // 定义用于存放整数的容器
vector<double> vd;         // 定义用于存放浮点数的容器
vector<string> vs;           // 定义用于存放string字符串的容器
vector<struct st_girl> vgirl;  // 定义用于存放超女结构体的容器
vector<CGirl> vGirl;         // 定义用于存放超女类的容器

vector容器可以存放C语言的基本数据类型,可以存放结构体,还可以存放类,这正是我们想要的简单的方法,链表?我已经有二十年没有用它了。

二、容器的使用

vector的功能强大,成员函数很多,我不想按普通教程的方式来介绍它,那样会太烦锁,我根据实际开发中应用的场景,采用示例程序介绍vector常用的用法。

1、存放整数

示例(book220.cpp)

/*
 * 程序名:book220.cpp,此程序用于演示C++容器存放整数
 * 作者:C语言技术网(www.freecplus.net) 日期:20190525
*/
#include <stdio.h> 
#include <vector>      // vector需要的头文件
#include <algorithm>   // sort函数需要的头文件

int main () 
{
    
  int height=0;             // 存放从键盘输入的超女身高
  std::vector<int> vheight; // 存放超女身高的容器

  while (true)
  {
   
    printf("请输入超女身高(0-结束输入):");
    scanf("%d",&height);         // 接受键盘输入的数据
    if (height==0) break;        // 0-结束输入
    vheight.push_back(height);   // 把数据追加入容器
  }

  for (int ii=0;ii<vheight.size();ii++) // 显示排序前容器中的记录
  {
    
    printf("vheight[%d]=%d\n",ii,vheight[ii]);
  }

  sort(vheight.begin(),vheight.end());  // 容器中的记录排序

  for (int ii=0;ii<vheight.size();ii+
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值