📜  C++ STL-Deque.insert()函数(1)

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

C++ STL-Deque.insert()函数

简介

deque是双端队列,可以在两端进行插入和删除操作。insert()函数是deque中用于在任意位置插入一个或多个元素的函数。

函数声明
iterator insert (iterator position, const value_type& val);
void insert (iterator position, size_type n, const value_type& val);
template <class InputIterator>
  void insert (iterator position, InputIterator first, InputIterator last);
参数说明
  • position:插入元素的位置,可以是迭代器iterator
  • val:要插入的元素值
  • n:要插入元素的数量
  • first、last:区间[first, last)内的元素
返回值

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

使用示例
#include <iostream>
#include <deque>

int main() {
    // 定义双端队列
    std::deque<int> mydeque = {10, 20, 30, 40, 50};
    // 在第3个位置插入元素
    auto it = mydeque.begin() + 2;
    mydeque.insert(it, 999);
    // 在第4个位置插入3个元素
    it = mydeque.begin() + 3;
    mydeque.insert(it, 3, 111);
    // 在队尾插入一个区间的元素
    std::deque<int> anotherdeque = {9, 8, 7};
    mydeque.insert(mydeque.end(), anotherdeque.begin(), anotherdeque.end());

    //打印双端队列
    for (auto x : mydeque) {
        std::cout << x << " ";
    }

    return 0;
}

输出:

10 20 999 111 111 111 30 40 50 9 8 7 
注意事项
  • 插入的位置必须在deque的有效范围内。如果要在deque尾部插入元素,请使用end()函数获取deque的迭代器。
  • 如果插入的元素数量为0,则该函数不会进行任何操作。
  • 如果插入的是另一个容器(如示例中的anotherdeque),则该容器将会被空置(即清空原容器)。
总结

deque的insert()函数可以很方便地插入任意位置的元素,使用时需要注意插入位置的有效性和插入元素的数量。