c++中STL库队列详细介绍

 更新时间:2021年12月21日 09:20:28   作者:℡238  
大家好,本篇文章主要讲的是c++中STL库队列详细介绍,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下,方便下次浏览

1.queue单向队列(先进先出,只能从尾端加元素,从头删元素)

        使用方式:在前面加上文件名‘#include<queue>',再进行声明'queue<int>m;''其中'<>‘里面是数组的类型,‘m'是数组的名字。

        操作:
1.q.push()//入队
2.q.pop()//让队首出队
3.q.front()//获得队首元素
4.q.back()//获得队尾元素

        5.q.empty() 队列是否为空
6.q.size() 返回队列内元素个数 

#include<iostream>
#include<queue>
using namespace std;
int main() {
	int i;
	queue<int>m;
	for ( i = 0;i < 5;i++) {
		m.push(i);//让元素入队
	}
	cout << m.size() << endl;//统计m中元素的个数
	for (i = 0;i < 5;i++) {
		cout<<m.front();//获得队首元素
		//m.pop();//弹出队首元素
	}
	return 0;
}

上面代码运行后由于没有讲队首元素给弹出,输出的都是是一样的,因此为了能让m中的每一个元素输出,我们应该及时的将队首元素给弹出,再每次输出第一个元素的时候及时的将它给弹出。

#include<iostream>
#include<queue>
using namespace std;
int main() {
	int i;
	queue<int>m;
	for ( i = 0;i < 5;i++) {
		m.push(i);//让元素入队
	}
	cout << m.size() << endl;//统计m中元素的个数
	for (i = 0;i < 5;i++) {
		cout<<m.front();//获得队首元素
		m.pop();//弹出队首元素
	}
	return 0;
}

这样我们就能将m中的所有元素给输出。

2.deque双向列队(即能从头部加入元素又能从尾部加入元素,元素进入按抽屉原理,最后进最先出)

         使用方式:在前面加上文件名‘#include<deque>',再进行声明‘deque<int>m;

        操作:
1.q.push_back()//尾部插入
2.q.push_front()//头部插入
3.q.pop_front()//头部删除
4.q.pop_back()//尾部删除
5.q.front()//返回第一个元素
6.q.back()//返回最后一个元素

#include<iostream>
#include<deque>
using namespace std;
int main() {
	int i;
	deque<int>m;
	for ( i = 0;i < 5;i++) {
		m.push_front(i);//让元素从头部入队
	}
	cout << m.size() << endl;//统计m中元素的个数
	for (i = 0;i < 5;i++) {
		cout<<m.front();//获得队首元素
		m.pop_front();//从头部弹出队首元素
	}
	return 0;
}

 3.vector(长度可变的数组)

        使用方法:在前面加上文件名‘#include<vector>',再进行声明‘vector<int>m;'。

        操作

        1.m.push_back()//输入元素
2.m.pop_back()//删除最后一个元素
3.m.size()//得到vector的大小
4.m.clear()//清空容器中所有数据
5.m.empty()//判断vector是否为空
6.m.front()//引用第一个元素
7.m.back()//引用最后一个元素

#include<iostream>
#include<vector>
using namespace std;
int main() {
	int i;
	vector<int>m;
	for ( i = 0;i < 5;i++) {
		m.push_back(i);//让元素入队
	}
	cout << m.size() << endl;//得到vector容器的大小
	for (i = 0;i < 5;i++) {
		cout << m.back();//获得尾部元素
		m.pop_back();//从尾部弹出元素
	}
	cout << endl;
	for (i = 0;i < 5;i++) {
		m.push_back(i);
	}
	cout << m.size() << endl;
	m.clear();//清除m中所有元素
	cout << m.size() << endl;
	return 0;
}

到此这篇关于c++中STL库队列详细介绍的文章就介绍到这了,更多相关c++ STL库队列内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • C语言中冒泡排序算法详解

    C语言中冒泡排序算法详解

    大家好,本篇文章主要讲的是C语言中冒泡排序算法详解,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下
    2022-01-01
  • C++数据结构之链表的创建

    C++数据结构之链表的创建

    这篇文章主要介绍了C++数据结构之链表的创建的相关资料,希望通过本文帮助到大家,让大家理解掌握这部分内容,需要的朋友可以参考下
    2017-10-10
  • C/C++中的static关键字详解

    C/C++中的static关键字详解

    这篇文章主要为大家详细介绍了 C/C++中的static关键字,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-03-03
  • C++超详细讲解构造函数

    C++超详细讲解构造函数

    C++的构造函数的作⽤:初始化类对象的数据成员。即类的对象被创建的时候,编译系统对该对象分配内存空间,并⾃动调⽤构造函数,完成类成员的初始化。构造函数的特点:以类名作为函数名,⽆返回类型
    2022-06-06
  • C语言中的指针 初阶

    C语言中的指针 初阶

    这篇文章主要介绍的是关于初级阶段学习C语言中指针的一些内容,那就是指针是什么?简单的说,就是通过它能找到以它为地址的内存单元。下面文章我们就来详细介绍该内容,需要的朋友可以参考一下
    2021-10-10
  • C++中Operator类型强制转换成员函数解析

    C++中Operator类型强制转换成员函数解析

    转换函数定义了由<类型说明符1>到<类型说明符2>之间的映射关系。可见,转换函数是用来将一种类型的数据转换成为另一种类型
    2013-09-09
  • C语言 strcpy和memcpy区别详细介绍

    C语言 strcpy和memcpy区别详细介绍

    这篇文章主要介绍了C语言 strcpy和memcpy区别详细介绍的相关资料,需要的朋友可以参考下
    2017-01-01
  • 关于C++为什么不加入垃圾回收机制解析

    关于C++为什么不加入垃圾回收机制解析

    C++为什么不加入垃圾回收机制呢?现在肯定还有很多人不太了解,不过没关系,下面小编就为大家详细的介绍下究竟C++为什么不加入垃圾回收机制。一起跟随小编过来看看吧
    2017-01-01
  • C++详细分析讲解函数参数的扩展

    C++详细分析讲解函数参数的扩展

    在C++中,定义函数时可以给形参指定一个默认的值,这样调用函数时如果没有给这个形参赋值(没有对应的实参),那么就使用这个默认的值。也就是说,调用函数时可以省略有默认值的参数
    2022-04-04
  • 浅谈int8_t int64_t size_t ssize_t的相关问题(详解)

    浅谈int8_t int64_t size_t ssize_t的相关问题(详解)

    下面小编就为大家带来一篇浅谈int8_t int64_t size_t ssize_t的相关问题(详解)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-03-03

最新评论