Vector(向量)是一个动态数组,在C++的STL(Standard Template Library)中有着丰富的操作函数。本文将介绍Vector的常用函数以及用法示例。
定义和创建
直接初始化
可以通过以下方式直接初始化一个Vector:
#include <vector>std::vector<int> myVector = {1, 2, 3, 4, 5}; // 直接初始化一个包含5个整数的Vector
使用构造函数初始化
也可以使用构造函数初始化一个Vector:
#include <vector>std::vector<int> myVector(5, 0); // 使用构造函数初始化一个包含5个元素,初始值为0的Vector
常用函数
1. push_back(val)
在向量末尾添加元素。
std::vector<int> myVector;
myVector.push_back(1);
myVector.push_back(2);
myVector.push_back(3);
// 现在myVector包含了{1, 2, 3}
2. pop_back()
移除向量末尾的元素。
std::vector<int> myVector = {1, 2, 3};
myVector.pop_back();
// 现在myVector包含了{1, 2}
3. back()
获取向量中最后一个元素的值。
std::vector<int> myVector = {1, 2, 3};
int lastElement = myVector.back(); // lastElement的值为3
4. erase(pos) 和 erase(first, last)
-
erase(pos)
: 删除指定位置的元素。myVector.erase(myVector.begin() + 2); // 删除索引为2的元素,即值为3 // 现在myVector包含了{1, 2, 4, 5}
-
erase(first, last)
: 删除指定范围内的元素,左闭右开。myVector.erase(myVector.begin() + 1, myVector.begin() + 3); // 删除索引为1和2的元素,即值为2和4 // 现在myVector包含了{1, 5}
5. insert(pos, val) 和 insert(pos, n, val)
-
insert(pos, val)
: 在指定位置插入一个元素。std::vector<int> myVector = {1, 2, 4, 5}; myVector.insert(myVector.begin() + 2, 3); // 在索引为2的位置插入元素3 // 现在myVector包含了{1, 2, 3, 4, 5}
-
insert(pos, n, val)
: 在指定位置插入n个相同的元素。std::vector<int> myVector = {1, 5}; myVector.insert(myVector.begin() + 1, 3, 2); // 在索引为1的位置插入3个元素2 // 现在myVector包含了{1, 2, 2, 2, 5}
示例
以下是一个完整的示例代码,演示了Vector的常用函数的用法:
#include <iostream>
#include <vector>int main() {// 直接初始化一个Vectorstd::vector<int> myVector = {1, 2, 3, 4, 5};std::cout << "Vector elements before insert: ";for (int num : myVector) {std::cout << num << " ";}std::cout << std::endl;// 在索引为2的位置插入元素100myVector.insert(myVector.begin() + 2, 100);std::cout << "Vector elements after insert 1: ";for (int num : myVector) {std::cout << num << " ";}std::cout << std::endl;// 在索引为1的位置插入3个元素50myVector.insert(myVector.begin() + 1, 3, 50);std::cout << "Vector elements after insert 2: ";for (int num : myVector) {std::cout << num << " ";}std::cout << std::endl;return 0;
}水平有限,有问题随时交流;