社区
C语言
帖子详情
关于队列的简单问题
gsp397
2003-08-18 05:12:02
怎样遍历队列,并修改其中某一个元素呢,好象没有相关的成员函数,需要用泛型算法吗
假如现在队列中现有元素为 4,3,2,9,8,5
我现在想找到比3小(这个是查找条件)的元素(当然是2),并删除它,怎么办?
...全文
88
8
打赏
收藏
关于队列的简单问题
怎样遍历队列,并修改其中某一个元素呢,好象没有相关的成员函数,需要用泛型算法吗 假如现在队列中现有元素为 4,3,2,9,8,5 我现在想找到比3小(这个是查找条件)的元素(当然是2),并删除它,怎么办?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
madasoft
2003-08-18
打赏
举报
回复
他不仁,你不义,管他呢!
-----------------------
说得好!我直接访问你的内存,把你干掉,呵呵。
happycock
2003-08-18
打赏
举报
回复
严格意义上所谓的队列就是要满足先进先出的原则,并且除去进口和出口,不可以在其他操作数据。如果你非要在中间修改数据,就违背了队列的定义,又何必用队列来实现?
同意楼上的。
实际上,还有优先队列,这个不是严格意义上的队列了。然而我们的专家们这么干,只会让初学者疑惑。
对于楼主的要求,可以用vector或者list来代替,因为他们对外表现也可以成为“队列”。就不要追求什么定义上的严格了——他不仁,你不义,管他呢!
njtu
2003-08-18
打赏
举报
回复
使用vector吧,这可不是队列噢!
vector<int> vec(5);
vector<int>::iterator iter = vec.begin();
iter = vec.find_if(vec.begin(),vec.eng(),func()) //这里是自己的判断函数
vec.erase(iter);
也可以不用标准库,自己写一个链表结构,然后函数实现。
made_in_
2003-08-18
打赏
举报
回复
严格意义上所谓的队列就是要满足先进先出的原则,并且除去进口和出口,不可以在其他操作数据。如果你非要在中间修改数据,就违背了队列的定义,又何必用队列来实现?
可以换种方式,比如vector或者list什么的来实现你所需要的功能。
当然,如果不用队列不行的话,你也可以自己为队列添加这种功能,伪码如下:
void deleteFromQueue(Queue& src, int element)
{
Queue qt;
int t;
while(!src.Empty()){
if( (t = src.pop()) > element)
qt.push(t);
}
while(qt.Empty())
src.push(qt.pop());
}
gsp397
2003-08-18
打赏
举报
回复
难道一定要用链表才行?
airtraffic
2003-08-18
打赏
举报
回复
在标准库中,没有你要实现的队列遍历操作啊!
gsp397
2003-08-18
打赏
举报
回复
不是 我的程序题目明明写着 两个队列(一定有我说的那种操作)和一个链表
ZhangYv
2003-08-18
打赏
举报
回复
队列能遍历吗?满足先进先出的结构才称为队列.楼主是指链表吧?
C语言
69,369
社区成员
243,082
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章