C++标准库封装的vector数组

 更新时间:2022年03月10日 16:37:53   作者:机器学习入坑者  
这篇文章主要介绍了C++标准库封装的vector数组,vector创建的对象包含众多封装好的函数,想了解其相关资料的小伙伴可以参考下面文章内容,希望对你的学习有所帮助

前言:

如果构建基本类型的数组或者自定义类型的数组,那么需要自己扩展数组的功能,还有很多需要自己解决的问题,比如需要防止数组越界问题。此时,可以采用C++标准库提供的vector模板,vector创建的对象包含众多封装好的函数,比如“对象名.size()”函数可以很方便的查看数组的大小。下面从定义、使用、做函数引用等方面分别进行记录,并讨论vector对象和数组的区别。

1、创建和使用vector对象

vector对象的创建和使用语法如下:

/// 创建
vector<类型>对象名(数组长度, 元素初值)

/// 取元素
对象名[下标]

/// 使用对象的函数
对象名.函数名()

创建vector对象需要指定的“类型”可以是基本数据类型或者是类类型,如果是基本数据类型可以使用固定数值进行初始化(所有元素的初值只能相同);如果“类型”是类类型,那么就会调用“默认构造函数”进行初始化。下面第一个例子为基本数据类型作为vector元素的例子:

/// 构建vector对象,指定数组长度为3,初值为666
vector<int>data(3, 666);

/// 取元素
printf("%d \n", data[1]);

/// 调用vector对象的函数
printf("%d \n", data.size());

第二个例子是类类型的情况,此时将会调用类的默认构造函数,用于初始化:

/// 自定义的Duck类
class Duck {
public:
    /// 默认构造函数
    Duck() { duckAge = 666; }
    int duckAge;
};

/// 创建Duck类型的vector对象
vector<Duck>ducks(3);
/// vector的元素为Duck对象,可以调用Duck对象的成员
printf("%d \n", ducks[1].duckAge);

2、vector对象的引用

vector对象和其它类型的对象在引用的定义和使用的规则相同,都采用先声明引用,再将引用指向某个对象,最后通过引用操作对象。

下面是声明vector类型的引用语法:

vector <类型名>&引用名;

使用引用作为函数参数时,最好定义常引用,防止对象被意外的更改:

void vectorSize(vector<int>&vec) {
    printf("%d \n", vec.size());
}

到此这篇关于C++标准库封装的vector数组的文章就介绍到这了,更多相关C++的 vector数组内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 10行C++代码实现高性能HTTP服务

    10行C++代码实现高性能HTTP服务

    这篇文章主要介绍了10行C++代码如何实现高性能HTTP服务,帮助大家更好的理解和学习使用c++,感兴趣的朋友可以了解下
    2021-04-04
  • 使用C语言来画出皮卡丘的教程(附代码)

    使用C语言来画出皮卡丘的教程(附代码)

    在C语言中使用图形库画图需要引入graphics.h库,我们可以通过代码实现画出一个可爱的皮卡丘,将皮卡丘的绘制分为以下部分:耳朵、脸部、眼睛、嘴巴、手臂、腿部、尾巴,下面我们就来学习如何使用C语言编写画皮卡丘的代码
    2024-01-01
  • C语言 深入解读数据结构之堆的实现

    C语言 深入解读数据结构之堆的实现

    堆就是用数组实现的二叉树,所以它没有使用父指针或者子指针。堆根据“堆属性”来排序,“堆属性”决定了树中节点的位置
    2021-11-11
  • VS2019项目打包生成.exe文件与Setup的步骤实现

    VS2019项目打包生成.exe文件与Setup的步骤实现

    这篇文章主要介绍了VS2019项目打包生成.exe文件与Setup的步骤实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-03-03
  • C++制作《游戏内存外挂》详解

    C++制作《游戏内存外挂》详解

    这篇文章主要介绍了C++制作《游戏内存外挂》详解,文中通过示例代码和图片介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • C++实现简单版图书管理系统

    C++实现简单版图书管理系统

    这篇文章主要为大家详细介绍了C++实现简单版图书管理系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-06-06
  • C++哈希应用之位图,哈希切分与布隆过滤器详解

    C++哈希应用之位图,哈希切分与布隆过滤器详解

    这篇文章主要为大家详细介绍了C++哈希应用中的位图、哈希切分与布隆过滤器,文中的示例代码讲解详细,具有一定的学习价值,需要的可以参考一下
    2023-04-04
  • C++多态与虚拟之C++编译器对函数名的改编(Name Mangling)

    C++多态与虚拟之C++编译器对函数名的改编(Name Mangling)

    在Windows DLLs中,使用C++编写的DllMain()等callback函数需避免C++编译器进行name mangling,因此需使用extern "C",这篇文章主要介绍了C++多态与虚拟:C++编译器对函数名的改编(Name Mangling),需要的朋友可以参考下
    2024-04-04
  • C语言常量介绍

    C语言常量介绍

    这篇文章介绍了C语言中的常量,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-12-12
  • C语言变长数组 struct中char data[0]的用法详解

    C语言变长数组 struct中char data[0]的用法详解

    下面小编就为大家带来一篇C语言变长数组 struct中char data[0]的用法详解。小编觉得挺不错的现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-01-01

最新评论