C++ 迭代器与容器访问的深入解析
1. 使用迭代器在容器中插入新元素
在处理容器时,常常需要在容器的开头、结尾或中间插入新元素。但直接使用普通迭代器(如 begin()
返回的迭代器)进行插入操作,可能会覆盖容器中的元素,而且使用 end()
返回的迭代器无法在容器末尾插入元素。为解决这些问题,标准库提供了一组迭代器和迭代器适配器。
1.1 准备工作
相关的迭代器和适配器位于 <iterator>
头文件的 std
命名空间中。如果包含了 <algorithm>
等头文件,就无需显式包含 <iterator>
。
1.2 操作步骤
可以使用以下迭代器适配器在容器中插入新元素:
- std::back_inserter()
:用于在具有 push_back()
方法的容器末尾插入元素。示例代码如下:
std::vector<int> v{ 1,2,3,4,5 };
std::fill_n(std::back_inserter(v), 3, 0);
// v={1,2,3,4,5,0,0,0}
-
std::front_inserter()
:用于在具有push_front(