📜  在向量 C++ 中的开头插入(1)

📅  最后修改于: 2023-12-03 15:37:41.307000             🧑  作者: Mango

在向量 C++ 中的开头插入

在向量(vector)中,可以在开头插入元素,可以使用vector::insert函数,同时还可以使用vector::emplace_front函数。

vector::insert函数

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函数

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函数进行插入时,需要先创建一个拷贝,比较浪费时间和空间。