📜  在C++ STL中列出push_front()函数(1)

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

STL中的push_front()函数

在C++ STL(标准模板库)中,push_front()函数用于在容器的开头插入一个新元素。该函数仅适用于顺序容器(如std::dequestd::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并初始化几个元素(102030)。然后,我们使用push_front()函数将5插入到list的开头。最后,我们循环遍历整个list,并将所有元素打印到控制台上。

需要注意的是,push_front()函数的时间复杂度为$O(1)$(常数时间),因为它只涉及一个指针的操作。然而,在某些情况下,插入到容器的开头可能会导致内存分配和复制操作,因此请谨慎使用该函数。

此外,需要注意的是,std::vector不支持push_front()函数。如果你需要在vector的开头插入一个新元素,可以使用insert()函数:

myvector.insert(myvector.begin(), myelement);

该函数的时间复杂度为$O(n)$,其中$n$是vector中元素的数量。