📅  最后修改于: 2023-12-03 15:37:41.307000             🧑  作者: Mango
在向量(vector)中,可以在开头插入元素,可以使用vector::insert
函数,同时还可以使用vector::emplace_front
函数。
vector::insert
函数可以在指定位置插入一个或多个元素,可以使用迭代器指定插入位置,也可以使用下标指定插入位置。在开头插入元素,可以使用迭代器指向begin()
位置,代码示例:
std::vector<int> vec{2,3,4,5};
// 使用 insert 函数
vec.insert(vec.begin(), 1);
// 输出:1 2 3 4 5
for (auto const &ele : vec) std::cout << ele << " ";
此处使用vec.begin()
指针作为插入位置,插入值为1
,结果输出1 2 3 4 5
,符合预期。
vector::emplace_front
函数是C++11中新增的函数,其功能与vector::insert
函数类似,也可以在开头插入元素,不过它更加高效。emplace_front
函数可以直接在开头构造一个元素,而不是将元素拷贝至开头。
代码示例:
std::vector<int> vec{2,3,4,5};
// 使用 emplace_front 函数
vec.emplace_front(1);
// 输出:1 2 3 4 5
for (auto const &ele : vec) std::cout << ele << " ";
此处使用emplace_front
函数插入值为1
,结果同样输出1 2 3 4 5
。
推荐使用emplace_front
函数进行开头插入,因为它是一种高效的方式,可以直接在开头构造元素。在使用insert
函数进行插入时,需要先创建一个拷贝,比较浪费时间和空间。