1、deque简介
deque对象的默认构造
deque采用模板类实现,deque对象的默认构造形式:deque<T> deqT;
deque <int> deqInt; //一个存放int的deque容器。
deque <float> deq Float; //一个存放float的deque容器。
deque <string> deq String; //一个存放string的deque容器。
...
//尖括号内还可以设置指针类型或自定义类型。
2、deque末尾的添加移除操作
理论知识:
deque<int> deqInt;
deqInt.push_back(1);
deqInt.push_back(3);
deqInt.push_back(5);
deqInt.push_back(7);
deqInt.push_back(9);
deqInt.pop_front();
deqInt.pop_front();
deqInt.push_front(11);
deqInt.push_front(13);
deqInt.pop_back();
deqInt.pop_back();
//deqInt { 13,11,5}
3、deque的数据存取
理论知识:
deque<int> deqInt;
deqInt.push_back(1);
deqInt.push_back(3);
deqInt.push_back(5);
deqInt.push_back(7);
deqInt.push_back(9);
int iA = deqInt.at(0); //1
int iB = deqInt[1]; //3
deqInt.at(0) = 99; //99
deqInt[1] = 88; //88
int iFront = deqInt.front(); //99
int iBack = deqInt.back(); //9
deqInt.front() = 77; //77
deqInt.back() = 66; //66
4、deque与迭代器
理论知识
deque<int> deqInt;
deqInt.push_back(1);
deqInt.push_back(3);
deqInt.push_back(5);
deqInt.push_back(7);
deqInt.push_back(9);
for (deque<int>::iterator it=deqInt.begin(); it!=deqInt.end(); ++it)
{
cout << *it;
cout << "";
}
// 1 3 5 7 9
for (deque<int>::reverse_iterator rit=deqInt.rbegin(); rit!=deqInt.rend(); ++rit)
{
cout << *rit;
cout << "";
}
//9 7 5 3 1
5、deque对象的带参数构造
理论知识
deque<int> deqIntA;
deqIntA.push_back(1);
deqIntA.push_back(3);
deqIntA.push_back(5);
deqIntA.push_back(7);
deqIntA.push_back(9);
deque<int> deqIntB(deqIntA.begin(),deqIntA.end()); //1 3 5 7 9
deque<int> deqIntC(5,8); //8 8 8 8 8
deque<int> deqIntD(deqIntA); //1 3 5 7 9
6、deque的赋值
理论知识
deque<int> deqIntA,deqIntB,deqIntC,deqIntD;
deqIntA.push_back(1);
deqIntA.push_back(3);
deqIntA.push_back(5);
deqIntA.push_back(7);
deqIntA.push_back(9);
deqIntB.assign(deqIntA.begin(),deqIntA.end()); // 1 3 5 7 9
deqIntC.assign(5,8); //8 8 8 8 8
deqIntD = deqIntA; //1 3 5 7 9
deqIntC.swap(deqIntD); //互换
7、deque的大小
理论知识
deque<int> deqIntA;
deqIntA.push_back(1);
deqIntA.push_back(3);
deqIntA.push_back(5);
int iSize = deqIntA.size(); //3
if (!deqIntA.empty())
{
deqIntA.resize(5); //1 3 5 0 0
deqIntA.resize(7,1); //1 3 5 0 0 1 1
deqIntA.resize(2); //1 3
}
8、deque的插入
理论知识
deque<int> deqA;
deque<int> deqB;
deqA.push_back(1);
deqA.push_back(3);
deqA.push_back(5);
deqA.push_back(7);
deqA.push_back(9);
deqB.push_back(2);
deqB.push_back(4);
deqB.push_back(6);
deqB.push_back(8);
deqA.insert(deqA.begin(), 11); //{11, 1, 3, 5, 7, 9}
deqA.insert(deqA.begin()+1,2,33); //{11,33,33,1,3,5,7,9}
deqA.insert(deqA.begin() , deqB.begin() , deqB.end() ); //{2,4,6,8,11,33,33,1,3,5,7,9}
9、deque的删除
理论知识
删除区间内的元素
deqInt是用deque<int>声明的容器,现已包含按顺序的1,3,5,6,9元素。
deque<int>::iterator itBegin=deqInt.begin()+1;
deque<int>::iterator itEnd=deqInt.begin()+3;
deqInt.erase(itBegin,itEnd);
//此时容器deqInt包含按顺序的1,6,9三个元素。
假设 deqInt 包含1,3,2,3,3,3,4,3,5,3,删除容器中等于3的元素
for(deque<int>::iterator it=deqInt.being(); it!=deqInt.end(); ) //小括号里不需写 ++it
{
if(*it == 3)
{
it = deqInt.erase(it); //以迭代器为参数,删除元素3,并把数据删除后的下一个元素位置返回给迭代器。
//此时,不执行 ++it;
}
else
{
++it;
}
}
//删除deqInt的所有元素
deqInt.clear(); //容器为空
参考:传智扫地僧讲义
文章浏览阅读129次。在这篇文章中,我们将讨论Optee中virt_to_phys函数的实现,该函数用于将虚拟地址转换为物理地址。总结一下,Optee中的virt_to_phys函数通过解析页表项和应用ARM64的地址转换规则,实现了将虚拟地址转换为物理地址的功能。Optee中的virt_to_phys函数的作用就是根据当前页表的映射关系,将给定的虚拟地址转换为物理地址。在实际的代码中,还需要处理异常情况和错误检查,以确保函数的正确性和安全性。上述代码是Optee中virt_to_phys函数的简化版本,用于说明其实现逻辑。_virtual to physics函数
文章浏览阅读260次。OulipoTime Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 16577 Accepted Submission(s): 6640Problem DescriptionThe French author _hdu - 1686
文章浏览阅读183次。不知道大家在使用ExecuteNonQuery方法的时候有没有碰到过返回-1的情况。ExecuteNonQuery方法返回增删改时,受影响的行数。那怎么会返回-1呢?查了一些资料后终于得知返回-1的原因。在进行增删改时,数据库能为我们统计受影响行数的前提条件是,关闭NOCOUNT,即 Set nocount off。默认情况下,它是关闭的,即我们是可以得到受影响的行数的。你可以测试如下..._command.executenonquery返回-1
文章浏览阅读182次。wordpress 博客There are a small number of people who have made a fortune from setting up a blog and there are many more who dream of following suit. Unfortunately, to join the select group of high earne..._wordpress怎样盈利
文章浏览阅读1.4k次。Hidden PasswordACM South Eastern Europe -- 2003Sometimes the programmers have very strange ways of hiding their passwords. Billy "Hacker" Geits chooses a string S composed of L (5 <= L <= 100,_同构 usaco
文章浏览阅读3.2k次,点赞4次,收藏14次。我的项目目录如下: 直接上核心代码 MainActivity import android.support.v4.app.FragmentTransaction; import android.graphics.Color; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentAc_安卓开发 frgament中嵌套fragment+viewpager
文章浏览阅读870次。我们都说:学习计算机的人到一定岁数,会秃头,这是真的吗?我好害怕。。。其实吧?编程不背这黑锅,学编程的确实工作量大,工作时间长,用脑比较多,但是编程表示:这个黑锅我可担不起,其实吧,导致脱发的原因有很多:遗传性脱发:遗传性脱发也叫先天性脱发,这个是祖传的,只能认命,编程可背不起这个锅。对于男生来说,脱发,啊,好烦,因为一些基因或者激素的原因,更容易脱发。物理或者化学性脱发:物理性:长期接触放射源,长时间玩电脑手机,看电视等原因造成的物理性脱发。哇,这个锅编程能不能甩呢?回答当然是能的,现_编程人会秃头
文章浏览阅读796次。1.论文标题最好要好好琢磨,去除“基于....的”定语后,分析主谓宾后的论文标题没有语法问题;2.论文标题不宜过大,比如“基于.....的手势识别”,但是手势识别的种类多,比如“基于...的手势识别模型”,“基于...的手势识别算法”等等;3.最好从论文的第二章开始讲自己的东西,而不要讲一些已经有的一些定义、定理等,答辩时老师只会关心,论文里你自己做了什么,创新点在哪;4.自己做的部分一定要写清楚..._华科软件学院硕士论文
文章浏览阅读566次。文本分类概述 文本分类是在预定义的分类体系下,根据文本的特征(内容和属性),将给定文本与一个或者多个类别相关联的过程。最终目的是找到一个有效的映射函数,将输入的可视化文本映射为预定义分类体系下的一个或者多个类别。因此,文本分类有两个关键问题:一个是文本的表示,另一个就是分类器的设计。 **|输入文档|—> 预处理 —> **文本表示** —>..._文本分析示意图
文章浏览阅读163次。【代码】vue 连接 MQTT 实现发布/订阅消息。_vue使用mqtt定时器监测消息发送频率
文章浏览阅读1.6k次。在spring+mybatis开发中 遇到插入中文字符数据变成问号的问题1、一般第一步可能会去看spring项目中的web.xml是否设置了字符过滤器但是一看代码已经拷贝过来了啊 ┭┮﹏┭┮2、那会不会是tomcat中没有设置字符的问题?于是打开server.xml空欢喜 还是设置过了啊 ┭┮﹏┭┮3、对了还有个地方可能出问题 那就是数..._mybatis xml select ifnull 中文乱码
文章浏览阅读1.6k次。Qt维基百科,自由的百科全书Qt使用Qt Designer做GUI设计开发者Qt Project、诺基亚、Digia、KDE稳定版本5.0.1[1]/2013年1月31日;41天前预览版本5.0 RC2/2012年12月6日;3个月前编程语言_qt qgr