📜  在C++ STL中设置insert()函数(1)

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

在C++ STL中设置insert()函数

在C++ STL中,insert()函数用于在容器中插入元素。

语法

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);

这里,iterator表示容器中的迭代器,const_iterator表示常量迭代器,value_type表示容器中存储的元素类型,size_type表示无符号整数类型,InputIterator表示输入迭代器,initializer_list表示初始化列表。

描述
  • position - 插入元素的位置,必须是容器中的迭代器。
  • val - 要插入的值。
  • n - 需要插入的元素数量。
  • firstlast - 指定要插入的元素范围。
  • il - 初始化列表,指定要插入的元素。
返回值

insert()函数返回插入元素后的迭代器指针,指向插入的第一个元素。

示例
#include <iostream>
#include <vector>

using namespace std;

int main()
{
    vector<int> vec{ 10, 20, 30, 40 };

    // 在第二个元素后面插入50
    auto iter = vec.insert(vec.begin() + 1, 50);

    // 输出每个元素
    for (auto i : vec)
        cout << i << " ";
    cout << endl;

    // 输出返回的迭代器指针
    cout << "Pointer to the inserted element: " << &(*iter) << endl;

    return 0;
}

输出:

10 50 20 30 40
Pointer to the inserted element: 0050FCC4

在上面的例子中,我们使用insert()函数在一个vector中插入一个元素。我们首先将插入位置指定为第二个元素。然后,我们将值50传递给函数。函数返回插入的第一个元素的迭代器指针,并将其存储在iter变量中。我们使用for循环遍历容器中的所有元素,并输出它们的值。我们还输出了返回的迭代器指针,用&(*iter)获取该指针的地址。

结论

在C++ STL中,insert()函数可以用于在容器中插入元素。它接受多种类型的输入参数,包括一个值、一组值、一个范围,以及一个初始化列表。insert()函数返回一个迭代器指针,指向插入的第一个元素。