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

目录
相关文章
|
5天前
|
C++ 容器
C++中向量的操作vector
C++中向量的操作vector
|
12天前
|
存储 C语言 C++
【C++】vector的使用上
**C++ STL的vector简介与用法:** Vector是动态顺序数组,提供高效下标访问,支持动态增长。与数组类似但可自动调整大小。常用构造函数包括默认、填充、迭代器范围和拷贝构造。析构函数自动释放内存。赋值运算符执行深拷贝。迭代器接口包括`begin()`和`end()`(反向对应`rbegin()`和`rend()`),C++11增加了const版本以支持只读访问。示例代码展示了不同构造函数和迭代器的使用。
|
12天前
|
存储 C++ 索引
|
12天前
|
存储 C++ 容器
|
12天前
|
算法 数据处理 C++
|
4天前
|
存储 Java C++
【c++】vector模拟
【c++】vector模拟
6 0
|
12天前
|
编译器 C++
【C++】vector的使用下
**C++ 中的 `std::vector` 概要:** - **元素获取:** 支持 `operator[]`(越界时不检
|
3天前
|
设计模式 安全 编译器
【C++11】特殊类设计
【C++11】特殊类设计
22 10
|
9天前
|
C++
C++友元函数和友元类的使用
C++中的友元(friend)是一种机制,允许类或函数访问其他类的私有成员,以实现数据共享或特殊功能。友元分为两类:类友元和函数友元。类友元允许一个类访问另一个类的私有数据,而函数友元是非成员函数,可以直接访问类的私有成员。虽然提供了便利,但友元破坏了封装性,应谨慎使用。
40 9