16.3.2【deque容器赋值操作、大小操作】

复制代码
  1 #include<iostream>
  2 #include<stdlib.h>
  3 using namespace std;
  4 #include<deque>
  5 
  6 
  7 /*
  8     3.3.3 deque赋值操作
  9         deque& operator=(const deque &deq); //重载等号操作符
 10         assign(beg, end); //将[beg, end)区间中的数据拷贝赋值给本身。
 11         assign(n, elem); //将n个elem拷贝赋值给本身。
 12 
 13     3.3.4 deque大小操作
 14         deque.empty(); //判断容器是否为空
 15         deque.size(); //返回容器中元素的个数
 16         deque.resize(num); //重新指定容器的长度为num,若容器变长,则以默认值填充新位置。
 17                            //如果容器变短,则末尾超出容器长度的元素被删除。
 18         deque.resize(num, elem); //重新指定容器的长度为num,若容器变长,则以elem值填充新位置。
 19                                  //如果容器变短,则末尾超出容器长度的元素被删除。
 20 
 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 test333()
 35 {
 36     deque<int> d1;
 37     for(int i=0; i<10; i++)
 38     {
 39         d1.push_back(i);
 40     }
 41     pd(d1);
 42 
 43     deque<int> d2;
 44     d2 = d1;
 45     pd(d2);
 46 
 47     deque<int> d3;
 48     d3.assign(d1.begin(), d1.end());
 49     pd(d3);
 50 
 51     deque<int> d4;
 52     d4.assign(10, 6); //10个6
 53     pd(d4);
 54 }
 55 
 56 
 57 void test334()
 58 {
 59     deque<int> d1;
 60     for(int i=0; i<10; i++)
 61     {
 62         d1.push_back(i);
 63     }
 64     pd(d1);
 65 
 66     if(d1.empty())
 67     {
 68         cout << "is null" << endl;
 69     }
 70     else
 71     {
 72         cout << "not null" << endl;
 73         cout << "size:" << d1.size() << endl;
 74         //deque容器没有vector中capacity容量的概念
 75     }
 76 
 77     d1.resize(16);
 78     pd(d1); //默认0填充多余空间
 79     d1.resize(20, 1); //重载函数自定义用1填充多余空间
 80     pd(d1);
 81 
 82     d1.resize(6);
 83     pd(d1); //超出6个存储位置的数据被删掉
 84 }
 85 
 86 
 87 int main()
 88 {
 89     test333(); //deque赋值方式同vector
 90     test334();
 91     /*
 92         deque没有容量的概念
 93         判断是否为空 --- empty
 94         返回元素个数 --- size
 95         重新指定个数 --- resize
 96     */
 97 
 98     system("pause");
 99     return 0;
100 }
复制代码

 

posted @   yub4by  阅读(113)  评论(0编辑  收藏  举报
编辑推荐:
· 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 让容器管理更轻松!
点击右上角即可分享
微信分享提示