📜  C++ Vector.insert()函数(1)

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

C++ Vector.insert()函数

在C++中,vector是一种非常实用的数据结构,它可以用来存储任意类型的数据,并提供了许多方便的函数来操作这些数据。其中之一就是insert()函数,它可以在vector中插入新的元素,并可以指定插入的位置。

描述

insert()函数定义如下:

iterator insert (const_iterator position, const value_type& val);
iterator insert (const_iterator position, size_type n, const value_type& val);
template <class InputIterator>
iterator insert (const_iterator position, InputIterator first, InputIterator last);
iterator insert (const_iterator position, value_type&& val);
iterator insert (const_iterator position, initializer_list<value_type> il);

其中,第一个参数position是一个迭代器,表示插入的位置;第二个参数val是要插入的值,可以是单个值,也可以是一段值序列;第三个参数n表示要插入的相同值的个数;第四个参数first和last是表示一段值序列的迭代器;第五个参数val是一个右值引用,表示要插入的值;最后一个参数il是一个initializer_list对象,表示要插入的值序列。

函数返回值是一个迭代器,指向插入的第一个元素。

使用示例
插入单个元素

下面的代码展示了如何在vector的指定位置插入一个新的元素。

#include <iostream>
#include <vector>

using namespace std;

int main() {
    vector<int> vec = {1, 2, 3, 4, 5};
    auto it = vec.begin() + 2;
    vec.insert(it, 6);
    for (auto x : vec) {
        cout << x << " ";
    }
    cout << endl;
    return 0;
}

输出结果为:

1 2 6 3 4 5
插入多个元素

下面的代码展示了如何在vector的指定位置插入多个新的元素。

#include <iostream>
#include <vector>

using namespace std;

int main() {
    vector<int> vec = {1, 2, 3, 4, 5};
    auto it = vec.begin() + 2;
    vec.insert(it, 3, 6);
    for (auto x : vec) {
        cout << x << " ";
    }
    cout << endl;
    return 0;
}

输出结果为:

1 2 6 6 6 3 4 5
插入另一个vector

下面的代码展示了如何在vector的指定位置插入另一个vector中的元素。

#include <iostream>
#include <vector>

using namespace std;

int main() {
    vector<int> vec = {1, 2, 3, 4, 5};
    vector<int> vec2 = {6, 7, 8};
    auto it = vec.begin() + 2;
    vec.insert(it, vec2.begin(), vec2.end());
    for (auto x : vec) {
        cout << x << " ";
    }
    cout << endl;
    return 0;
}

输出结果为:

1 2 6 7 8 3 4 5
插入初始化列表

下面的代码展示了如何在vector的指定位置插入一个初始化列表中的元素。

#include <iostream>
#include <vector>

using namespace std;

int main() {
    vector<int> vec = {1, 2, 3, 4, 5};
    auto it = vec.begin() + 2;
    vec.insert(it, {6, 7, 8});
    for (auto x : vec) {
        cout << x << " ";
    }
    cout << endl;
    return 0;
}

输出结果为:

1 2 6 7 8 3 4 5
总结

insert()函数是vector提供的一个非常实用的函数,可以在vector中插入新的元素,并可以指定插入的位置。无论是插入单个元素,还是插入多个元素,都能够方便地完成。因此,在编写C++程序时,要熟练掌握insert()函数的使用方法,以便更好地进行数据处理。