C++ STL vector使用insert在指定位置插入元素
push_back()在 vector 末尾插入元素。如果要在中间插入元素,该如何办呢?很多 STL 容器(包括
std::vector)都包含 insert( )函数,且有多个重载版本。
其中一个版本让您能够指定插入位置:
// insert an element at the beginning
integers.insert (integers.begin (), 25);
另一个版本让您能够指定插入位置、要插入的元素数以及这些元素的值(都相同):
// Insert 2 elements of value 45 at the end
integers.insert (integers.end (), 2, 45);
还可将另一个 vector 的内容插入到指定位置:
// Another vector containing 2 elements of value 30
vector another (2, 30);
// Insert two elements from another container in position [1]
integers.insert (integers.begin () + 1,
another.begin (), another.end ());
可使用迭代器(通常是由 begin( )或 end( )返回的)告诉 insert( )您想将新元素插入到什么位置。
也可将该迭代器设置为 STL 算法(如 std::find( )函数)的返回值。 std::find( )可用于查找
元素,然后在这个位置插入另一个元素(这将导致找到的元素向后移)。诸如 find()等算
法将在第 23 章详细讨论。
程序清单 17.3 演示了 vector::insert( )的各种重载版本。
0: #include <vector>
1: #include <iostream>
2: usi