目录
零. 前言:
一.简介
二. 主要特点
三. 例子
1.创建
2.添加元素
3.访问元素
4.获取大小
5.删除元素
6.扩展
begin()
end()
零. 前言:
在编程中,数组通常具有固定的大小,这在某些情况下可能会带来一些限制。
当我们事先无法确切知道需要存储的数据量时,固定大小的数组就显得不太灵活。如果预估的数组大小不足,可能需要重新定义一个更大的数组并进行数据的转移,这是比较繁琐和低效的。
而向量(vector)的出现很好地解决了这个问题。它具有动态可扩展性,可以根据实际需要自动增长或收缩其容量。我们可以方便地向 vector 中添加元素,而无需担心容量不足的问题。它在内存管理上更加智能和高效。
比如说,在一个需要不断收集用户输入数据的程序中,我们无法一开始就确定会有多少数据,使用数组可能会导致频繁地重新定义数组,而使用 vector 就可以轻松应对这种不确定的情况。又比如在处理一个不断增长的数据集时,vector 可以灵活地适应数据量的变化,而不需要程序员过多地操心容量的调整。
一.简介
vector 是 C++ STL 中的向量类型,它是一种动态数组,可以存储任意类型的数据。使用 vector 时需要包含头文件<vector>。vector 具有自动扩容、随机访问、高效插入和删除等特点,适用于需要动态存储和操作数据的场景。
二. 主要特点
vector 可以存储任意类型的元素,并提供了一些方便的操作方法,如添加元素、删除元素、访问元素等。vector 的主要特点包括:
- 动态扩容:vector 的大小可以根据需要自动增加或减少,无需手动管理内存。
- 随机访问:可以通过索引快速访问 vector 中的任意元素。
- 高效的插入和删除:在 vector 的末尾插入和删除元素的时间复杂度为常数级别,但在中间插入和删除元素的时间复杂度为线性级别。
- 迭代器支持:vector 提供了迭代器,可以方便地遍历其中的元素。
三. 例子
1.创建
std::vector<int> myVector;
2.添加元素
myVector.push_back(5); // 将整数 5 添加到 vector 的末尾
3.访问元素
使用下标操作符 [] 或 at() 方法访问 vector 中的元素:
4.获取大小
myVector.size(); // 获取 vector 中的元素数量
5.删除元素
使用 erase() 方法删除 vector 中的元素:
6.扩展
begin()
begin()
是vector
类的一个成员函数,用于返回指向vector
容器中第一个元素的迭代器。
end()
end()
是一个成员函数,用于返回一个指向向量末尾元素的下一个位置的迭代器。
需要注意的是,end()
函数返回的迭代器不能直接解引用,因为它指向的是最后一个元素的后面,而不是一个有效的元素。如果需要访问最后一个元素,可以使用 vec.back()
函数或者通过 vec.end() - 1
来获取倒数第二个迭代器,然后解引用该迭代器来访问最后一个元素