一、引言
在 C++ 标准库中,vector
是一个非常强大且常用的容器,它可以动态地管理数组,能够根据需要自动调整大小。本文将详细介绍 vector
的各种用法以及相关函数的应用。
二、vector
的基本概念
vector
是一个模板类,它的元素在内存中是连续存储的,这使得它在访问元素时具有很高的效率,和数组类似,可以通过索引来快速访问元素。
三、vector
的头文件和声明
使用 vector
前需要包含 <vector>
头文件。声明一个 vector
可以有多种方式,例如:
cpp
#include <vector>
// 声明一个存储 int 类型元素的 vector
std::vector<int> intVector;
// 声明一个存储 string 类型元素的 vector
std::vector<std::string> stringVector;
四、vector
的常用函数
4.1 push_back
函数
push_back
函数用于在 vector
的末尾添加一个元素。
cpp
#include <iostream>
#include <vector>
int main() {
std::vector<int> numbers;
numbers.push_back(10);
numbers.push_back(20);
for (int num : numbers) {
std::cout << num << " ";
}
return 0;
}
4.2 size
函数
size
函数用于返回 vector
中元素的个数。
cpp
#include <iostream>
#include <vector>
int main() {
std::vector<int> numbers = {1, 2, 3};
std::cout << "vector的长度为 " << numbers.size() << std::endl;
return 0;
}
4.3 empty
函数
empty
函数用于判断 vector
是否为空,返回 true
表示为空,false
表示非空。
cpp
#include <iostream>
#include <vector>
int main() {
std::vector<int> numbers;
if (numbers.empty()) {
std::cout << "vector是空的" << std::endl;
} else {
std::cout << "vector不是空的" << std::endl;
}
return 0;
}
4.4 at
函数
at
函数用于通过索引访问 vector
中的元素,并且会进行越界检查,如果越界会抛出 std::out_of_range
异常。
cpp
#include <iostream>
#include <vector>
int main() {
std::vector<int> numbers = {10, 20, 30};
try {
std::cout << "索引为 1 的元素是: " << numbers.at(1) << std::endl;
// 尝试访问越界索引
std::cout << "索引为 5 的元素是: " << numbers.at(5) << std::endl;
} catch (const std::out_of_range& e) {
std::cout << "越界错误: " << e.what() << std::endl;
}
return 0;
}
4.5 front
和 back
函数
front
函数返回 vector
的第一个元素,back
函数返回 vector
的最后一个元素。
cpp
#include <iostream>
#include <vector>
int main() {
std::vector<int> numbers = {10, 20, 30};
std::cout << "第一个元素是 " << numbers.front() << std::endl;
std::cout << "最后一个元素是" << numbers.back() << std::endl;
return 0;
}
4.6 erase
函数
erase
函数用于删除 vector
中的元素,可以删除单个元素或一段元素。
cpp
#include <iostream>
#include <vector>
int main() {
std::vector<int> numbers = {10, 20, 30, 40, 50};
// 删除索引为 2 的元素
numbers.erase(numbers.begin() + 2);
// 删除从索引 1 开始的 2 个元素
numbers.erase(numbers.begin() + 1, numbers.begin() + 3);
for (int num : numbers) {
std::cout << num << " ";
}
return 0;
}
4.7 insert
函数
insert
函数用于在 vector
的指定位置插入元素。
cpp
#include <iostream>
#include <vector>
int main() {
std::vector<int> numbers = {10, 20, 30};
// 在索引 1 处插入 15
numbers.insert(numbers.begin() + 1, 15);
// 在开头插入多个元素
numbers.insert(numbers.begin(), {5, 8});
for (int num : numbers) {
std::cout << num << " ";
}
return 0;
}
五、总结
vector
是 C++ 中非常实用的容器,通过掌握上述这些常用函数的用法,可以灵活地对 vector
进行各种操作,满足不同的编程需求。在实际编程中,合理运用 vector
能够提高代码的效率和可读性。
希望本文对你理解和使用 vector
有所帮助。如果你有任何疑问或建议,欢迎在评论区留言交流。
求个三连,跪谢大伙!!!