C++ STL教程:深入理解vector基础操作

需积分: 9 0 下载量 165 浏览量 更新于2024-09-14 收藏 137KB DOC 举报
"C++_STL开发技术导引--1vector的基础应用" 本文将深入探讨C++中的标准模板库(STL)中的一个重要容器——`vector`,它是一种动态数组,提供了灵活的数组操作功能。在C++编程中,`vector`被广泛用于存储和管理元素序列。 首先,`vector`的创建是通过`vector<int>`定义的,其中`int`表示存储的数据类型。在`main`函数中,我们看到`vector<int> v`初始化了一个空的`vector`对象`v`。 `push_back`方法用于在`vector`末尾添加元素。如`v.push_back(20)`,`v.push_back(26)`和`v.push_back(39)`分别将20、26和39添加到`v`的末尾。 `insert`方法允许我们在`vector`的特定位置插入元素。例如,`v.insert(v.begin()+3,9)`在下标为3的位置(即第四个元素之前)插入了值9,`v.insert(v.begin(),5)`在`vector`开头插入5,而`v.insert(v.end(),11)`在末尾插入11。 在遍历`vector`时,我们可以使用迭代器。`vector<int>::iterator i, iend`定义了两个迭代器,`i`用于遍历,`iend`指向`vector`的结束位置。`for`循环遍历`vector`并打印元素。同样,`vector<int>::reverse_iterator ri, ried`定义了反向迭代器,用于反向遍历`vector`。 `front()`方法返回`vector`的第一个元素,如`v.front()`;而`rend()`返回反向迭代器的结束位置,`rbegin()`返回反向迭代器的开始位置,这两个方法用于反向遍历。 `v2`是另一个`vector`实例,展示了如何用`push_back`方法添加元素,以及如何通过`print`函数显示`vector`的内容。`print`函数不仅打印`vector`的元素,还提供了一些额外的信息,如`empty`(判断`vector`是否为空)、`size`(获取`vector`的元素数量)、`max_size`(返回`vector`能容纳的最大元素数量)和`capacity`(当前分配的内存大小,可容纳的元素数量)。 `swap`函数用于交换两个`vector`的内容,如`swap(v, v2)`。`reserve`方法用于预先分配内存,`v2.reserve(30)`确保`v2`至少有30个元素的空间,即使目前它可能并不需要这么多。 本示例介绍了C++`vector`容器的基本操作,包括初始化、插入元素、遍历、访问元素、交换`vector`以及查看容量信息。这为理解和使用`vector`作为动态数组的高级功能奠定了基础。