📅  最后修改于: 2023-12-03 15:07:52.276000             🧑  作者: Mango
在C++ STL(标准模板库)中,push_front()
函数用于在容器的开头插入一个新元素。该函数仅适用于顺序容器(如std::deque
,std::list
等)。
下面是一个针对std::list
的示例代码:
#include <iostream>
#include <list>
int main() {
std::list<int> mylist {10, 20, 30};
// 在list的开头插入一个新元素
mylist.push_front(5);
std::cout << "mylist contains: ";
for (auto& x: mylist) std::cout << x << " ";
std::cout << std::endl;
return 0;
}
输出结果为:
mylist contains: 5 10 20 30
在上面的示例中,我们首先创建一个std::list
并初始化几个元素(10
,20
和30
)。然后,我们使用push_front()
函数将5
插入到list的开头。最后,我们循环遍历整个list,并将所有元素打印到控制台上。
需要注意的是,push_front()
函数的时间复杂度为$O(1)$(常数时间),因为它只涉及一个指针的操作。然而,在某些情况下,插入到容器的开头可能会导致内存分配和复制操作,因此请谨慎使用该函数。
此外,需要注意的是,std::vector
不支持push_front()
函数。如果你需要在vector的开头插入一个新元素,可以使用insert()
函数:
myvector.insert(myvector.begin(), myelement);
该函数的时间复杂度为$O(n)$,其中$n$是vector中元素的数量。