vector容器-容量和大N小c++的讲解

简介: vector容器-容量和大N小c++的讲解

std::vector 是 C++ 标准模板库(STL)中的一个动态数组容器,它允许我们存储一系列同类型的元素,并且可以根据需要动态地调整其大小。在 std::vector 中,有两个重要的概念:容量(capacity)和大小(size)。容量指的是 vector 当前分配的存储空间能够容纳的元素数量,而大小则指的是 vector 当前实际包含的元素数量。

 

一、大小(Size)

大小表示 vector 中当前存储的元素个数。可以使用 size() 成员函数来获取 vector 的大小。

 

代码示例

image.png

讲解

在上面的代码中,我们首先创建了一个空的 vector,并使用 size() 函数输出了其初始大小,结果为 0。接着,我们使用 push_back() 函数向 vector 中添加了三个元素,并再次使用 size() 函数输出了添加元素后的大小,结果为 3。这表明 size() 函数返回的是 vector 中实际存储的元素数量。

 

二、容量(Capacity)

容量表示 vector 当前分配的存储空间能够容纳的元素数量。它通常大于或等于 vector 的大小,因为 vector 为了提高性能,在内部通常会分配比实际存储元素更多的空间。当 vector 的大小增加到接近其容量时,它会自动分配更多的内存空间。可以使用 capacity() 成员函数来获取 vector 的容量。

 

代码示例

image.png

讲解

在上面的代码中,我们创建了一个空的 vector 并输出了其初始大小和容量。由于 vector 是空的,所以初始大小和容量都是 0。接着,我们使用一个循环向 vector 中添加了 10 个元素,并输出了添加元素后的大小和容量。通常情况下,vector 的容量会大于其大小,以减少重新分配内存的次数,提高性能。在输出中,我们可以看到容量通常是一个大于或等于大小的数。

 

三、调整容量

如果需要明确设置 vector 的容量,可以使用 reserve() 成员函数。reserve() 讲解

在上面的代码中,我们创建了一个空的 vector 并输出了其初始大小和容量。由于 vector 是空的,所以初始大小和容量都是 0。接着,我们使用一个循环向 vector 中添加了 10 个元素,并输出了添加元素后的大小和容量。通常情况下,vector 的容量会大于其大小,以减少重新分配内存的次数,提高性能。在输出中,我们可以看到容量通常是一个大于或等于大小的数。

 

三、调整容量

如果需要明确设置 vector 的容量,可以使用 reserve() 成员函数。reserve() 函数允许我们预先分配一定的内存空间,以避免在添加元素时频繁地重新分配内存。

 

代码示例,以避免在添加元素时频繁地重新分配内存。

 

代码示例

image.png

目录
相关文章
|
2月前
|
存储 C++ 索引
【C++打怪之路Lv9】-- vector
【C++打怪之路Lv9】-- vector
23 1
|
2月前
|
编译器 C++
【C++】—— vector模拟实现
【C++】—— vector模拟实现
|
2月前
|
算法 C++ 容器
C++之打造my vector篇(下)
C++之打造my vector篇(下)
30 0
|
2月前
|
存储 编译器 C++
C++之打造my vector篇(上)
C++之打造my vector篇(上)
29 0
|
2月前
|
算法 C++ 容器
【C++】—— vector使用
【C++】—— vector使用
|
22天前
|
Kubernetes Cloud Native Docker
云原生时代的容器化实践:Docker和Kubernetes入门
【10月更文挑战第37天】在数字化转型的浪潮中,云原生技术成为企业提升敏捷性和效率的关键。本篇文章将引导读者了解如何利用Docker进行容器化打包及部署,以及Kubernetes集群管理的基础操作,帮助初学者快速入门云原生的世界。通过实际案例分析,我们将深入探讨这些技术在现代IT架构中的应用与影响。
69 2
|
12天前
|
Kubernetes Linux 开发者
深入探索容器化技术——Docker 的实战应用
深入探索容器化技术——Docker 的实战应用
43 5
|
16天前
|
运维 Cloud Native 云计算
云原生之旅:Docker容器化实战
本文将带你走进云原生的世界,深入理解Docker技术如何改变应用部署与运维。我们将通过实际案例,展示如何利用Docker简化开发流程,提升应用的可移植性和伸缩性。文章不仅介绍基础概念,还提供操作指南和最佳实践,帮助你快速上手Docker,开启云原生的第一步。
|
19天前
|
机器学习/深度学习 数据采集 Docker
Docker容器化实战:构建并部署一个简单的Web应用
Docker容器化实战:构建并部署一个简单的Web应用
|
17天前
|
运维 持续交付 虚拟化
深入解析Docker容器化技术的核心原理
深入解析Docker容器化技术的核心原理
39 1