📜  C++ STL中的矢量insert()函数(1)

📅  最后修改于: 2023-12-03 14:59:47.210000             🧑  作者: Mango

C++ STL中的矢量insert()函数

矢量是C++标准模板库(STL)中的常用容器之一。它是具有动态大小、支持随机访问的序列容器。在开发过程中,经常需要在矢量中插入,删除元素,此时就需要用到矢量的insert()函数了。

insert()函数

insert()函数有多种形式,其中一种常见的格式为:

iterator insert (const_iterator position, const value_type& val);

该方法用于在指定位置之前,向矢量中插入一个新元素。第一个参数position是表示要插入新元素的位置的迭代器,第二个参数val是要插入的新元素的值。该函数将在指定位置之前插入新元素,并返回指向新元素的迭代器。

如果需要在矢量中插入多个元素,则可以使用以下形式的insert()方法:

void insert (const_iterator position, size_type n, const value_type& val);

其中n表示要插入的新元素的数量。这种形式的insert()方法为从指定位置开始的n个位置分配空间,并将val的副本插入每个分配的新元素中。请注意,此函数没有返回值。

代码示例

以下是在矢量中使用insert()函数的示例代码:

#include <iostream>
#include <vector>

using namespace std;

int main() {
    // 创建矢量并插入元素
    vector<int> vec = {1, 2, 3};
    vec.insert(vec.begin() + 2, 4);

    // 使用迭代器打印矢量中的元素
    for (auto it = vec.begin(); it != vec.end(); ++it) {
        cout << *it << " ";
    }
    cout << endl;

    // 插入多个元素
    vec.insert(vec.begin() + 1, 3, 0);

    // 使用范围for循环打印矢量中的元素
    for (auto x: vec) {
        cout << x << " ";
    }
    cout << endl;

    return 0;
}

输出结果:

1 2 4 3
1 0 0 0 2 4 3

在上述示例中,首先创建了一个包含元素1、2和3的矢量。然后插入了一个新元素4,插入位置为指向元素3的迭代器。然后,插入了3个值为0的新元素,插入位置为指向元素2的迭代器。最后,使用迭代器和范围for循环打印矢量中的元素。

这就是关于C++ STL中的矢量insert()函数的介绍。它是处理带有动态大小和随机访问需求的序列数据时的常用方法。