现在位置: 首页 > C++ 教程 > 正文

C++ <list> insert 函数

C++ 容器类 <list> C++ 容器类 <list>


insert 是 list 中用于在指定位置插入元素的函数,是链表最灵活的操作。

insert 是容器类的成员函数,用于在链表的指定位置插入一个或多个元素。

在 list 中,insert 的时间复杂度是 O(1),因为只需要调整指针。

单词释义insert 表示"插入",即在指定位置添加元素。


基本语法与参数

insert 是容器类的成员函数,需要指定插入位置和元素。

语法格式

iterator insert(iterator pos, const T& value);
iterator insert(iterator pos, T&& value);
void insert(iterator pos, size_type count, const T& value);
template&lt;class InputIt&gt;
void insert(iterator pos, InputIt first, InputIt last);

参数说明

  • 参数pos - 插入位置的迭代器
  • 参数value - 要插入的元素值

函数说明

  • 返回值: 返回指向第一个插入元素的迭代器。
  • 效果: 在指定位置插入元素,后续元素依次后移。

实例

示例 1:基础用法 - 插入单个元素

实例

#include <iostream>
#include <list>

int main() {
    std::list<int> numbers = {1, 2, 3, 4, 5};

    std::cout << "原始 list: ";
    for(int n : numbers) std::cout << n << " ";
    std::endl;

    // 在第二个位置(迭代器)插入 100
    auto it = std::next(numbers.begin(), 1);
    numbers.insert(it, 100);

    std::cout << "插入 100 后: ";
    for(int n : numbers) std::cout << n << " ";
    std::cout << std::endl;

    return 0;
}

运行结果预期:

原始 list: 1 2 3 4 5
插入 100 后: 1 100 2 3 4 5

示例 2:插入多个元素

实例

#include <iostream>
#include <list>

int main() {
    std::list<int> numbers = {1, 5};

    std::cout << "原始: ";
    for(int n : numbers) std::cout << n << " ";
    std::cout << std::endl;

    // 在中间插入 3 个 0
    auto it = numbers.begin();
    std::advance(it, 1);
    numbers.insert(it, 3, 0);

    std::cout << "插入 3 个 0 后: ";
    for(int n : numbers) std::cout << n << " ";
    std::cout << std::endl;

    return 0;
}

运行结果预期:

原始: 1 5
插入 3 个 0 后: 1 0 0 0 5

C++ 容器类 <list> C++ 容器类 <list>