16.3.3【deque容器的插入和删除操作】
1 #include<iostream> 2 #include<stdlib.h> 3 using namespace std; 4 #include<deque> 5 6 7 /* 8 3.3.5 deque插入和删除 9 两端插入操作: 10 push_back(elem); //在容器尾部添加一个数据 11 push_front(elem); //在容器头部插入一个数据 12 pop_back(); //删除容器最后一个数据 13 pop_front(); //删除容器第一个数据 14 指定位置操作: 15 insert(pos,elem); //在pos位置插入一个elem元素的拷贝,返回新数据的位置。 16 insert(pos,n,elem); //在pos位置插入n个elem数据,无返回值。 17 insert(pos,beg,end); //在pos位置插入[beg,end)区间的数据,无返回值。 18 clear(); //清空容器的所有数据 19 erase(beg,end); //删除[beg,end)区间的数据,返回下一个数据的位置。 20 erase(pos); //删除pos位置的数据,返回下一个数据的位置。 21 */ 22 23 24 void pd(const deque<int> & d) 25 { 26 for(deque<int>::const_iterator it=d.begin(); it!=d.end(); it++) 27 { 28 cout << *it << " "; 29 } 30 cout << endl; 31 } 32 33 34 void test335_1() 35 { 36 deque<int> d1; 37 38 //尾插 39 d1.push_back(10); 40 d1.push_back(20); 41 42 //头插 43 d1.push_front(100); 44 d1.push_front(200); 45 46 pd(d1); 47 48 //尾删 49 d1.pop_back(); 50 pd(d1); 51 52 //头删 53 d1.pop_front(); 54 pd(d1); 55 } 56 57 58 void test335_2() 59 { 60 deque<int> d1; 61 d1.push_back(10); 62 d1.push_back(20); 63 d1.push_front(100); 64 d1.push_front(200); 65 pd(d1); 66 67 //insert一般插入 68 d1.insert(d1.begin(), 1000); 69 pd(d1); 70 d1.insert(d1.end(), 2, 999); //插入两个999 71 pd(d1); 72 73 //insert按照区间插入 74 deque<int> d2; 75 d2.push_back(1); 76 d2.push_back(2); 77 d2.push_back(3); 78 d1.insert(d1.begin(), d2.begin(), d2.end()); //将d2整个插入到d1头部 79 pd(d1); 80 } 81 82 83 void test335_3() 84 { 85 deque<int> d1; 86 d1.push_back(10); 87 d1.push_back(20); 88 d1.push_front(100); 89 d1.push_front(200); 90 pd(d1); 91 92 //删除 93 deque<int>::iterator it = d1.begin(); 94 it++; 95 d1.erase(it); //利用迭代器删掉d1的第二个数据 96 pd(d1); 97 98 d1.erase(d1.begin(), d1.end()); //==d1.clear() 99 pd(d1); 100 } 101 102 103 104 int main() 105 { 106 test335_1(); 107 test335_2(); 108 test335_3(); 109 110 system("pause"); 111 return 0; 112 }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!