VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

有编程疑问吗?还请到提问专区发帖提问!
搜索
查看: 2479|回复: 60

《实用C++》第46课 C++容器之动态数组vector①

  [复制链接]
51_avatar_middle
online_admins Syc 发表于 2018-6-12 01:53:01 | 显示全部楼层 |阅读模式
1、为什么有vector?什么是动态数组vector?
既然是数组,那么我们先来说说数组的概念,关于数组咱们之前讲解过,例如,一个int的数组,定义如下:
int arr_int[100] = {0};
对吧?这个数组里面有100个元素,那如果我这个学校有1000个学生,那么可能我就要定义数组的大小是1000个,本身是普通的数组,所以要求在定义的时候就给定大小。不然系统无法判断数组所占用的内存。但是现实生活中往往有很多时候是确定不了大小的,例如qq的服务器,他要同时接受N多人的连接,全国有上亿的人登陆qq,那么如果让你定义一个数组的话,你要定义多少?固定大小的话定义多少都不合适,本身数量在增长,是个动态的大小。定义太大了浪费空间,定义太小了还不够用。所以动态数组vector就为我们解决了这个问题。他是容量大小动态变化的数组,定义vector对象的时候先不用指定数组的大小,有数据的话就往数组里面插入就可以了。vector内部自己管理存储空间,不用你操心了。

2、vector 的头文件和命名空间:
#include <vector> //注意,没有 .h
using namespace std; //在 std 标准命名空间中

3、vector 的定义:
刚才给大家说了,vector是动态数组,但是并没有说vector是什么类型的数组,那么他的类型到底是什么呢?其实他能够适应任何类型!他是一个类模板,例如:
  1. vector<int> arr_int; //定义了一个内部元素是int的动态数组;
  2. vector<char> arr_char; //定义了一个内部元素是char的动态数组;
  3. vector<CStudent> arr_student; //定义了一个内部元素是CStudent的动态数组;
  4. vector<char*> arr_pchar; //定义了一个内部元素是char*的动态数组;
复制代码

怎么样?这个类模板非常方便吧,要什么类型就来什么类型,而且容量大小没有限制!

4、vector 的初始化:
初始化的方法也是有多种,咱们到 http://www.cplusplus.com/reference/vector/vector/ 这里面来看下,找到其构造函数的链接:http://www.cplusplus.com/reference/vector/vector/vector/
咱们来一一实现一下,具体演示见视频教程!
  1. #include <vector>
  2. int main (int argc, char* argv[])
  3. {
  4.   std::vector<int> one;                                //定义一个空的、元素类型是 int 的 vector 动态数组
  5.   std::vector<int> two(4,100);               //定义一个包含4个元素,每个元素的值都是100的 vector 动态数组
  6.   std::vector<int> three(two.begin(),two.end());  //使用 two 这个对象的迭代器,从开始到结束的所有元素来初始化当前对象
  7.   std::vector<int> four(three);                       // 使用 three 这个对象来初始化当前对象

  8.   int myints[] = {16,2,77,29};
  9.   std::vector<int> five (myints, myints + sizeof(myints) / sizeof(int) ); //使用一个普通的 int 数组来初始化当前对象

  10.   return 0;
  11. }
复制代码


5、小作业:
使用之前课程中讲解的 CStudent 类型来定义多个 vector 动态数组,并进行初始化操作!

第46课免费试看,下载地址回复后可见:
游客,如果您要查看本帖隐藏内容请回复

#######################################################
获得所有教学视频、课件、源代码以及售后答疑详见:
《实用C++》:http://www.cctry.com/thread-275996-1-1.html
VC驿站官方客服QQ:8260671

#######################################################




上一篇:《实用C++》第45课 文件IO操作之文件指针
下一篇:《实用C++》第47课 C++容器之动态数组vector②

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

85_avatar_middle
在线会员 99099800 发表于 2018-6-12 16:54:52 | 显示全部楼层
感谢分享,学习一下。

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

78_avatar_middle
在线会员 csa 发表于 2018-6-13 00:00:30 | 显示全部楼层
不错不错,谢谢

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

98_avatar_middle
在线会员 tomok 发表于 2018-6-13 09:03:04 | 显示全部楼层
继续学习 谢谢分享

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

98_avatar_middle
在线会员 tomok 发表于 2018-6-13 09:03:33 | 显示全部楼层
谢谢分享
继续学习

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

80_avatar_middle
在线会员 zp521 发表于 2018-6-15 08:39:35 | 显示全部楼层
坚持学习!

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

74_avatar_middle
online_vip08 wssfcn 发表于 2018-6-15 11:37:14 | 显示全部楼层
看看      

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

44_avatar_middle
在线会员 a281288098 发表于 2018-6-16 08:53:12 | 显示全部楼层
版主辛苦,感谢版主,

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

41_avatar_middle
online_vip liguolong 发表于 2018-6-16 14:37:29 | 显示全部楼层
感谢分享。

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

96_avatar_middle
在线会员 Jer808 发表于 2018-6-16 15:47:46 | 显示全部楼层
好好学习!~~~

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

95_avatar_middle
在线会员 zjh2008 发表于 2018-6-16 22:03:35 | 显示全部楼层
感谢分享,学习一下。

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

82_avatar_middle
在线会员 ha521ha 发表于 2018-6-17 08:28:24 | 显示全部楼层
学习中......

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

80_avatar_middle
online_vip lanyihr888 发表于 2018-6-17 22:13:25 | 显示全部楼层
继续学习 谢谢分享

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

66_avatar_middle
在线会员 wxc300 发表于 2018-6-18 12:43:43 | 显示全部楼层
感谢分享,学习一下。

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

63_avatar_middle
在线会员 wangjiechun 发表于 2018-6-21 09:38:36 | 显示全部楼层
谢谢老大的讲解

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

49_avatar_middle
在线会员 yuanpinq 发表于 2018-6-21 20:45:57 | 显示全部楼层
看看啊,不错

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

06_avatar_middle
online_vip 1938537171 发表于 2018-6-22 12:11:05 | 显示全部楼层
我爱学习 学习爱我

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

22_avatar_middle
在线会员 supersct 发表于 2018-6-22 22:05:26 | 显示全部楼层
继续学习
谢谢分享

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

74_avatar_middle
在线会员 jiaokai123 发表于 2018-6-22 23:44:13 | 显示全部楼层
不错不错,谢谢

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

75_avatar_middle
在线会员 Sam599 发表于 2018-6-23 19:40:47 | 显示全部楼层
感谢分享,楼主辛苦了!

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

关闭

站长提醒上一条 /1 下一条

QQ
QQ在线咨询
联系电话
13591366679
手机扫一扫 关注本站精彩内容
wxqrcode

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号tongdun|网站地图wx_jqr

GMT+8, 2018-10-16 10:38

Powered by Discuz! X3.4

© 2009-2018 cctry.com

快速回复 返回顶部 返回列表