问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何在C++ STL的queue当中查找一个元素?

发布网友 发布时间:2022-05-14 03:15

我来回答

5个回答

热心网友 时间:2023-08-10 02:30

int i;queue里面没有find,所以自己写一个吧,比如可以用下面这种,一个一个查,把查到的值记录下来。 for(i =0; i < q.size(); i ++){ if(num == q[i]) break;}if(i == q.size()){cout << "num doesn't exist;"<<endl;}else{cout << "num is the "<<i+1<<"th element in queue q!"<<endl;}

热心网友 时间:2023-08-10 02:30

如果num的范围已知,且空间足够,那么:

boolflg[size] = {false}; 

每次元素进队时多一步操作:(i为即将入队的值)

q.push(i);

flg[i] = true;

查找的时候只需要参考flg[num]就好。

这样查找比较快,时间复杂度为O(1)。

如果空间不够,或者想知道num在队中的位置,那么把整个队列遍历一遍。

queue<int>tmp; int i=1;

while(!q.empty()){

tmp.push(q.front());

q.pop();

if(tmp.rear==num) cout<<i<<endl;

i++;

}

while(!tmp.empty()){

q.push(tmp.front());

tmp.pop();

}

这样,所有值为num的元素所在的位置都可以知道了。

由于队列是动态的,所占用的空间只会多一点点。但时间复杂度为O(n)。

热心网友 时间:2023-08-10 02:31

#include<stdio.h> 
#include<iostream>
#include<string> 
#include<malloc.h>
#include<fstream>
#include<vector>
#include<queue>

using namespace std;

void searchQueue(queue<int> q, int searchValue) {
int pos = 0;
bool searchFlag = false;
for(int i=0; i<q.size(); ++i) {
if(q.front() == searchValue && !searchFlag) {
cout << pos;
searchFlag = true;
}
else {
q.push(q.front());
q.pop();
pos++;
}
}
}

int main() {
queue<int> q;
q.push(1);
q.push(2);
q.push(3);
searchQueue(q, 2);
}

热心网友 时间:2023-08-10 02:31

queue是队列的意思,好像有一个front方法,可以看看

热心网友 时间:2023-08-10 02:32

//使用algorithm的find函数
#include <algorithm>
#include <queue>
using namespace std;
int main()
{
queue<int> q={1,2,3,4,5,6,7}; //初始化
int num=2; //赋值
auto pos=find(q.cbegin(),q,cend(),num);
if(pos!=q.cend())
{
cout<<"找到该元素"<<endl;
}
else
{
cout<<"未找到该元素"<<endl;
}
}

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
脚崴了挂什么科、急急急 linux 解压缩工具--tar命令 生日祝福语闺蜜 简短独特暖心 QQ有哪些隐藏的图标??他们分别是什么??怎么样点亮?? QQ业务的各种图标怎么点亮? qq怎么点亮图标和名字 诗中书万象=求下联 大爱如山藏万象下联 中国电子展:电位器和可调电阻的区别是什么?这四点很明显 电位器的接线方法是什么 电位器的工作原理如何 C++小问题:函数里queue&lt;int&gt; q[10]的资源释放 struct queue *init()是什么意思? c队列函数DestroyQueue()有点不懂,求助? Priority(数组元素)这个函数是怎么用的,为什么不用_queue,和用 _queue有什么区别,用c++实现的? C++关于queue的初始化 c语言库函数queue可以定义string类队列吗,如图是我的代码,编译后显示有错误,如何修改? C语言 队列queue问题,看不懂函数,在线等 jquery .queue回调函数? 简短法制宣传内容有哪些? 倍轻松3D揉捏按摩披肩怎么样 下列物质中氮元素的化合价最高的是(  )A.NO2B.N2C.NaNO3D.NH 下列物质的溶液中加入*银溶液和稀*,不产生白色沉淀的是(  )A.HClB.NaClC.NaNO3D.BaCl 下列肥料中属于复合肥料的是(&nbsp;&nbsp;)A.CO(NH2)2B.KClC.NaNO3D.KNO3 能与氢氧化钠溶液反应放出气体的化肥是(  )A.K2SO4B.NH4ClC.NaNO3D.Ca(H2PO4) 人民币飙升,空头们都爆仓了吗 下列盐的水溶液呈酸性的是( )A.NaClB.NH4ClC.NaNO3D.Na2CO 下列物质中,氮元素的化合价为+5价的是(  )A.NH3B.NO2C.KNO3D.NaNO 川贝蒸雪梨,川贝不磨成粉可以吗?听说这个可以治宝宝咳嗽的? 新冠病毒的首个3D图像是哪些部门发布的? 2011年温州潮汐表 void EnQueue(QUEUE *queue,int v) 是什么意思 void EnQueue(QUEUE *queue,int v) 是什么意思 关于C++&lt;queue&gt;的问题 关于C++&lt;queue&gt;的问题 《STL源码分析》中如何priority_queue使用greater函数对象? 织梦编辑器在添加超链接时怎样设置默认新窗口打开 我这个链队的push_queue()函数哪里有问题,真是搞不懂,哪位大神帮帮忙 织梦编辑器无法编辑内容,求解决! 关于linked queue析构函数清空队列的代码解释 织梦5.7编辑器怎么删除投票功能 C语言队列函数传递 织梦dedecms后台内容编辑器不见了,要怎么解决 我写的c程序老说Queue没有被定义是咋回事啊,求大虾指教 织梦后台文章为什么没了? 织梦fck编辑器丧失复制粘贴功能如何处理 织梦本编辑器不支持多图发布功能,怎么解决? 你好,织梦那个编辑器中多图上传问题 织梦文章编辑器不显示工具栏?求解决方法 如图: 如何将织梦DEDEcms后台ckeditor编辑器更换为ueditor百度编辑器 dede,织梦编辑器问题 默认编辑器和换上百度编辑器都遇到同样问题。