1. std::vector库介绍
std::vector
是C++标准库中的一个动态数组容器,它可以自动调整大小以容纳任意数量的元素。std::vector
提供了一种高效的方式来存储和操作数据,同时还具有很好的灵活性和可扩展性。
std::vector - cppreference.com
2. 主要的类
std::vector
主要包含以下几个类:
std::vector<T>
:表示一个存储类型为T
的元素的动态数组。std::vector<T>::iterator
:表示指向std::vector
中元素的迭代器。std::vector<T>::const_iterator
:表示指向std::vector
中元素的常量迭代器。std::vector<T>::size_type
:表示std::vector
中元素的数量。
3. 主要的方法
std::vector
提供了许多方法来操作其元素,以下是一些常用的方法:
push_back()
:在std::vector
的末尾添加一个新元素。pop_back()
:删除std::vector
末尾的元素。insert()
:在指定位置插入一个新元素。erase()
:删除指定位置的元素或一段范围内的元素。clear()
:删除std::vector
中的所有元素。resize()
:调整std::vector
的大小。reserve()
:预分配std::vector
的内存空间。swap()
:交换两个std::vector
的内容。begin()
:返回指向std::vector
第一个元素的迭代器。end()
:返回指向std::vector
最后一个元素之后的迭代器。front()
:返回指向std::vector
第一个元素的引用。back()
:返回指向std::vector
最后一个元素的引用。at()
:返回指向指定位置元素的引用,如果越界则抛出异常。operator[]
:重载下标运算符,返回指向指定位置元素的引用。
4. 使用案例
以下是一些使用std::vector
的示例:
创建一个std::vector并向其中添加元素
#include <iostream>
#include <vector>
int main() {
std::vector<int> myVector;
myVector.push_back(1);
myVector.push_back(2);
myVector.push_back(3);
myVector.push_back(4);
myVector.push_back(5);
for (auto it = myVector.begin(); it != myVector.end(); ++it) {
std::cout << *it << " ";
}
std::cout << std::endl;
return 0;
}
输出结果为:1 2 3 4 5
从std::vector中删除元素
#include <iostream>
#include <vector>
int main() {
std::vector<int> myVector = {1, 2, 3, 4, 5};
myVector.erase(myVector.begin() + 2); // 删除下标为2的元素
for (auto it = myVector.begin(); it != myVector.end(); ++it) {
std::cout << *it << " ";
}
std::cout << std::endl;
return 0;
}
输出结果为:1 2 4 5
将两个std::vector合并成一个
#include <iostream>
#include <vector>
#include <algorithm>
int main() {
std::vector<int> list1 = {1, 2, 3};
std::vector<int> list2 = {4, 5, 6};
std::vector<int> mergedList;
mergedList.insert(mergedList.end(), list1.begin(), list1.end());
mergedList.insert(mergedList.end(), list2.begin(), list2.end());
for (auto it = mergedList.begin(); it != mergedList.end(); ++it) {
std::cout << *it << " ";
}
std::cout << std::endl;
return 0;
}
输出结果为:1 2 3 4 5 6
对std::vector进行排序
#include <iostream>
#include <vector>
#include <algorithm>
int main() {
std::vector<int> myVector = {5, 3, 1, 4, 2};
std::sort(myVector.begin(), myVector.end());
for (auto it = myVector.begin(); it != myVector.end(); ++it) {
std::cout << *it << " ";
}
std::cout << std::endl;
return 0;
}
输出结果为:1 2 3 4 5
倒序排序:
#include <iostream>
#include <vector>
#include <algorithm>
int main() {
std::vector<int> myVector = {5, 3, 1, 4, 2};
std::sort(myVector.rbegin(), myVector.rend());
for (auto it = myVector.begin(); it != myVector.end(); ++it) {
std::cout << *it << " ";
}
std::cout << std::endl;
return 0;
}
输出结果:5 4 3 2 1
5. std::vector的总结
std::vector
是一个非常强大的动态数组容器,它提供了丰富的方法和功能来操作和处理数据。总之,std::vector
是C++标准库中非常重要的一个组件,值得我们在学习和实践中深入了解和掌握。