一、前言

deque 容器中,无论是增加元素还是删除元素,都只能借助 deque 模板类提供的成员函数。

二、波及的相干函数

函数性能
push_back()在容器现有元素的尾部增加一个元素
pop_back()移除容器尾部的一个元素
push_front()在容器现有元素的头部增加一个元素
pop_front()移除容器尾部的一个元素
emplace_back()在容器尾部生成一个元素,效率比push_back()高
emplace_front()在容器头部生成一个元素,效率比push_front()高
insert()在指定的地位间接生成一个元素
emplace()在指定的地位间接生成一个元素,效率比insert高
erase()移除一个元素或某一区域内的多个元素
clear()删除容器中所有的元素

insert用法

格局性能
iterator insert(pos,elem)在迭代器 pos 指定的地位之前插入一个新元素elem,并返回示意新插入元素地位的迭代器
iterator insert(pos,n,elem)在迭代器 pos 指定的地位之前插入 n 个元素 elem,并返回示意第一个新插入元素地位的迭代器
iterator insert(pos,first,last)在迭代器 pos 指定的地位之前,插入其余容器(不仅限于vector)中位于 [first,last) 区域的所有元素,并返回示意第一个新插入元素地位的迭代器
iterator insert(pos,initlist)在迭代器 pos 指定的地位之前,插入初始化列表(用大括号{}括起来的多个元素,两头有逗号隔开)中所有的元素,并返回示意第一个新插入元素地位的迭代器

三、实例

1、增加、删除

std::deque<int> dequeInt;    dequeInt.push_back(319);    std::cout << "push_back dequeInt size: " << dequeInt.size() << std::endl;    dequeInt.pop_back();    std::cout << "pop_back dequeInt size: " << dequeInt.size() << std::endl;    dequeInt.push_front(31);    dequeInt.push_front(571);    dequeInt.push_front(910);    for (int i = 0; i < dequeInt.size(); i++)    {        std::cout << "push_front dequeInt[" << i << "]=" << dequeInt[i] << std::endl;    }    dequeInt.pop_front();    for (int i = 0; i < dequeInt.size(); i++)    {        std::cout << "pop_front dequeInt[" << i << "]=" << dequeInt[i] << std::endl;    }    dequeInt.emplace_front(1099);    dequeInt.emplace_back(7100);    for (int i = 0; i < dequeInt.size(); i++)    {        std::cout << "emplace_front and emplace_back dequeInt[" << i << "]=" << dequeInt[i] << std::endl;    }    dequeInt.emplace(dequeInt.begin() + 2, 4301);    for (int i = 0; i < dequeInt.size(); i++)    {        std::cout << "emplace dequeInt[" << i << "]=" << dequeInt[i] << std::endl;    }    dequeInt.erase(dequeInt.begin() + 2);    for (int i = 0; i < dequeInt.size(); i++)    {        std::cout << "erase appoint dequeInt[" << i << "]=" << dequeInt[i] << std::endl;    }

后果如下:

2、insert实例

 std::deque<int> dequeInt{4301,2591,671};    std::cout << "dequeInt size: " << dequeInt.size() << std::endl;    dequeInt.insert(dequeInt.begin() + 2, 798);    for (int i = 0; i < dequeInt.size(); i++)    {        std::cout << "insert1 dequeInt[" << i << "]=" << dequeInt[i] << std::endl;    }    std::cout << "dequeInt size: " << dequeInt.size() << std::endl;    dequeInt.insert(dequeInt.begin() + 3, 3, 9);    for (int i = 0; i < dequeInt.size(); i++)    {        std::cout << "insert2 dequeInt[" << i << "]=" << dequeInt[i] << std::endl;    }    std::cout << "insert2 dequeInt size: " << dequeInt.size() << std::endl;    std::array<int, 3> arrayInt{ 901,756,34 };    dequeInt.insert(dequeInt.begin() + 5, arrayInt.begin(), arrayInt.end());    for (int i = 0; i < dequeInt.size(); i++)    {        std::cout << "insert3 dequeInt[" << i << "]=" << dequeInt[i] << std::endl;    }    std::cout << "insert3 dequeInt size: " << dequeInt.size() << std::endl;    dequeInt.insert(dequeInt.begin() + 1, { 88,92,34 });    for (int i = 0; i < dequeInt.size(); i++)    {        std::cout << "insert4 dequeInt[" << i << "]=" << dequeInt[i] << std::endl;    }    std::cout << "insert4 dequeInt size: " << dequeInt.size() << std::endl;

后果如下: