简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长!
优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀
人生格言: 人生从来没有捷径,只有行动才是治疗恐惧和懒惰的唯一良药.
1.前言
本篇目的:理解C++之vector关于容量成员函数size、max_size、resize、capacity、empty、reserve、shrink_to_fit用法。
-
- size():
- 作用:返回容器中元素的数量。
- 用法:使用
size()
函数可以获取容器中元素的数量。
-
- max_size():
- 作用:返回容器能够容纳的最大元素数量。
- 用法:使用
max_size()
函数可以获取容器能够容纳的最大元素数量。注意,这个数量实际上取决于操作系统和编译器的限制。
-
- resize():
- 作用:改变容器的大小,可以增加或减少元素数量。
- 用法:
resize()
函数有两种用法。一种是通过指定新的大小来增加或减少容器的元素数量,另一种是通过指定新的大小和默认值来增加容器的元素数量并初始化新增的元素。
-
- capacity():
- 作用:返回容器当前能够容纳的元素数量。
- 用法:使用
capacity()
函数可以获取容器当前能够容纳的元素数量。注意,capacity()函数返回的是容器分配内存的大小,而不是元素的实际数量。
-
- empty():
- 作用:判断容器是否为空。
- 用法:使用
empty()
函数可以判断容器是否为空。如果容器为空,则返回true
,否则返回false
。
-
- reserve():
- 作用:改变容器的容量,即预留一定的内存空间。
- 用法:使用
reserve()
函数可以改变容器的容量,以便在插入大量元素之前预留足够的内存空间,避免多次重新分配内存。
-
- shrink_to_fit():
- 作用:收缩容器的容量,使其与元素数量相匹配。
- 用法:使用
shrink_to_fit()
函数可以收缩容器的容量,使其与元素数量相匹配。该函数会释放多余的内存空间。
2.应用实例
1. size(): 返回容器中元素的数量。
示例:
#include <iostream>
#include <vector>
int main() {
std::vector<int> numbers {1, 2, 3, 4, 5};
std::cout << "容器的大小:" << numbers.size() << std::endl;
return 0;
}
2. max_size(): 返回容器能够容纳的最大元素数量。
示例:
#include <iostream>
#include <vector>
int main() {
std::vector<int> numbers;
std::cout << "容器可以容纳的最大元素数量:" << numbers.max_size() << std::endl;
return 0;
}
3. resize(): 改变容器的大小,可以增加或减少元素数量。
示例:
#include <iostream>
#include <vector>
int main() {
std::vector<int> numbers {1, 2, 3};
numbers.resize(5); // 增加容器的大小到5
std::cout << "容器的大小:" << numbers.size() << std::endl;
numbers.resize(2); // 减少容器的大小到2
std::cout << "容器的大小:" << numbers.size() << std::endl;
return 0;
}
4. capacity(): 返回容器当前能够容纳的元素数量。
示例:
#include <iostream>
#include <vector>
int main() {
std::vector<int> numbers;
std::cout << "容器当前的容量:" << numbers.capacity() << std::endl;
return 0;
}
5. empty(): 判断容器是否为空,返回一个布尔值。
示例:
#include <iostream>
#include <vector>
int main() {
std::vector<int> numbers;
if (numbers.empty()) {
std::cout << "容器为空" << std::endl;
} else {
std::cout << "容器不为空" << std::endl;
}
return 0;
}
6. reserve(): 改变容器的容量,即预留一定的内存空间。
示例:
#include <iostream>
#include <vector>
int main() {
std::vector<int> numbers;
numbers.reserve(10);
std::cout << "容器的容量:" << numbers.capacity() << std::endl;
return 0;
}
7. shrink_to_fit(): 收缩容器的容量,使其与元素数量相匹配。
示例:
#include <iostream>
#include <vector>
int main() {
std::vector<int> numbers {1, 2, 3, 4, 5};
numbers.pop_back(); // 移除最后一个元素
numbers.shrink_to_fit(); // 收缩容器的容量
std::cout << "容器的容量:" << numbers.capacity() << std::endl;
return 0;
}