gpt4 book ai didi

浅谈C++STL之双端队列容器

转载 作者:qq735679552 更新时间:2022-09-27 22:32:09 26 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章浅谈C++STL之双端队列容器由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

概述

deque块在头部和尾部都可以插入和删除。而不需要移动任何元素,而不需要移动其他元素(使用push_back()方法在尾部插入元素,会扩张队列,而使用push_front()方法在首部插入元素和使用insert()方法在中间插入元素,只是将原位置上的元素进行覆盖,不会增加新元素)一般来说,当考虑到容器元素的内存分配策略和操作的性能时deque相当于vector更有优势.

浅谈C++STL之双端队列容器

创建deque对象与vector类似 。

插入元素

使用push_back()方法从尾部插入元素,会不断扩张队列.

?
1
2
3
4
5
6
7
8
9
10
11
#include<iostream>
#include<deque>
using namespace std;
int main()
{
     deque< int > d;
     d.push_back(1);
     d.push_back(2);
     cout<<d[0]<< " : " <<d[1]<<endl;
     return 0;
}

从头部插入元素,不会增加新元素,只将原来有的元素覆盖.

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include<iostream>
#include<deque>
using namespace std;
int main()
{
     deque< int > d;
     d.push_back(1);
     d.push_back(2);
     d.push_back(3);
     d.push_front(10); //d.insert(d.begin()+1, 10);
     d.push_front(20); //d.insert(d.begin()+2, 20);
     cout<<d[0]<< " " <<d[1]<< " " <<d[2]<<endl;
     return 0;
}

遍历

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include<iostream>
#include<deque>
using namespace std;
int main()
{
     deque< int > d;
     d.push_back(1);
     d.push_back(2);
     d.push_back(3);
     for ( int i = 0; i < d.size(); i ++)
         cout<<d[i]<< " " ;
     cout<<endl;
     deque< int >::iterator it;
     for (it = d.begin(); it != d.end(); it ++)
         cout<<*it<< " " ;
     cout<<endl;
     deque< int >::reverse_iterator rit;
     for (rit = d.rbegin(); rit != d.rend(); rit ++)
         cout<<*rit<< " " ;
     cout<<endl;
     return 0;
}

删除元素

可以从双端队列的手部,尾部,中部删除元素,并可以清空双端队列容器 。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include<iostream>
#include<deque>
using namespace std;
int main()
{
     deque< int > d;
     for ( int i = 1; i < 6; i ++)
         d.push_back(i);
     d.pop_front();
     d.pop_front();
     deque< int >::iterator it;
     for (it = d.begin(); it != d.end(); it ++)
         cout<<*it<< " " ;
     cout<<endl;
     d.pop_back();
     for (it = d.begin(); it != d.end(); it ++)
         cout<<*it<< " " ;
     cout<<endl;
     d.erase(d.begin()+1);
     for (it = d.begin(); it != d.end(); it ++)
         cout<<*it<< " " ;
     cout<<endl;
     d.clear();
     cout<<d.size()<<endl;
     return 0;
}

以上就是浅谈C++STL之双端队列容器的详细内容,更多关于C++STL之双端队列容器的资料请关注我其它相关文章! 。

原文链接:https://www.cnblogs.com/lsgxeva/p/7702578.html 。

最后此篇关于浅谈C++STL之双端队列容器的文章就讲到这里了,如果你想了解更多关于浅谈C++STL之双端队列容器的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com