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

目录
相关文章
|
6天前
|
存储 编译器 C++
【C++】vector介绍+模拟实现
【C++】vector介绍+模拟实现
|
7天前
|
算法 编译器 Linux
【C++】vector的模拟实现
【C++】vector的模拟实现
|
7天前
|
C++ 容器
C++中自定义结构体或类作为关联容器的键
C++中自定义结构体或类作为关联容器的键
13 0
|
6天前
|
存储 C++ 容器
如何将没有复制或移动构造函数的对象放入vector容器
如何将没有复制或移动构造函数的对象放入vector容器
16 0
|
8天前
|
C++ 容器
【C++航海王:追寻罗杰的编程之路】关联式容器的底层结构——AVL树
【C++航海王:追寻罗杰的编程之路】关联式容器的底层结构——AVL树
18 5
|
7天前
|
存储 算法 C语言
【C++】vector的认识与使用
【C++】vector的认识与使用
|
7天前
|
存储 C++ 索引
|
5天前
|
安全 编译器 容器
C++STL容器和智能指针
C++STL容器和智能指针
|
7天前
|
存储 缓存 NoSQL
【C++】哈希容器
【C++】哈希容器
|
8天前
|
关系型数据库 C++ 容器
【C++航海王:追寻罗杰的编程之路】关联式容器的底层结构——红黑树
【C++航海王:追寻罗杰的编程之路】关联式容器的底层结构——红黑树
15 0

热门文章

最新文章