std::vector的用法
std::vector是C++标准库中的一个动态数组容器,它可以自动管理内存,当元素被插入或删除时,它会自动调整大小。std::vector提供了许多方便的成员函数和操作符,可以方便地对数组进行操作。
-
创建和初始化一个空的std::vector:
std::vector<int> vec; // 创建一个空的整数向量 std::vector<int> vec(5); // 创建一个包含5个元素的整数向量,所有元素初始化为0 std::vector<int> vec(5, 3); // 创建一个包含5个元素的整数向量,所有元素初始化为3
-
访问std::vector中的元素:
int first = vec[0]; // 访问第一个元素 int last = vec[vec.size() - 1]; // 访问最后一个元素
-
向std::vector中添加元素:
vec.push_back(4); // 在向量末尾添加一个元素 vec.insert(vec.begin() + 1, 5); // 在指定位置插入一个元素
-
从std::vector中删除元素:
vec.pop_back(); // 删除向量末尾的元素 vec.erase(vec.begin() + 1); // 删除指定位置的元素
-
遍历std::vector中的元素:
for (int i = 0; i < vec.size(); ++i) { std::cout << vec[i] << " "; } // 或者使用范围for循环 for (int num : vec) { std::cout << num << " "; }
-
获取std::vector的大小:
int size = vec.size(); // 获取向量的大小
-
判断std::vector是否为空:
if (vec.empty()) { std::cout << "Vector is empty." << std::endl; } else { std::cout << "Vector is not empty." << std::endl; }
-
查找std::vector中的元素:
int index = vec.find(3); // 查找值为3的元素的位置,如果找不到则返回end()迭代器
-
排序std::vector中的元素:
std::sort(vec.begin(), vec.end()); // 对向量进行升序排序
-
反转std::vector中的元素:
std::reverse(vec.begin(), vec.end()); // 反转向量中的元素顺序
-
打印vector中的每个数字和vector的大小,可以使用循环遍历vector中的元素并使用size()函数获取vector的大小
#include <iostream> #include <vector> int main() { std::vector<int> numbers = {1, 2, 3, 4, 5}; // 定义一个包含数字的vector // 打印vector中的每个数字 for (int i = 0; i < numbers.size(); i++) { std::cout << "Number: " << numbers[i] << std::endl; } // 大小 std::cout << "Vector size: " << numbers.size() << std::endl; return 0; }
下面是一个简单的例子,演示了如何使用std::vector:
#include <iostream> #include <vector> int main() { std::vector<int> numbers; // 创建一个空的整数向量 // 向向量中添加元素 for (int i = 1; i <= 10; ++i) { numbers.push_back(i); } // 输出向量中的元素 for (int num : numbers) { std::cout << num << " "; } std::cout << std::endl; // 计算向量中元素的和 int sum = 0; for (int num : numbers) { sum += num; } std::cout << "Sum of elements: " << sum << std::endl; return 0; }