游戏开发论坛

 找回密码
 立即注册
搜索
查看: 1965|回复: 4

队列的问题

[复制链接]

13

主题

46

帖子

52

积分

注册会员

Rank: 2

积分
52
发表于 2007-3-24 20:57:00 | 显示全部楼层 |阅读模式
WaitForSingleObject(m_hTaskQueueSync, THREAD_POOL_WAIT_TIMEOUT);
{
       if (false == m_TaskQueue.empty())
       {
        pQueueInfo = m_TaskQueue.front();
        m_TaskQueue.pop();
        }
}
ReleaseMutex(m_hTaskQueueSync);

我在看别人的线程池的程序的时候看到这段不太明白(其中m_TaskQueue是用queue声明的队列), 我认为这里的用意是从任务队列头上取得任务,然后删除队列头的。但它这里用了pop()函数,我查过MSDN说pop()函数是删除队列中的最后一个元素。这跟删除队列的第一个元素不是矛盾了吗?还是我理解方面有问题呢?大家认为怎样呢?

8

主题

310

帖子

311

积分

中级会员

Rank: 3Rank: 3

积分
311
QQ
发表于 2007-3-24 22:06:00 | 显示全部楼层

Re:队列的问题

"从任务队列头上取得任务,然后删除队列头的"
队列何用?你这不成栈了么

13

主题

46

帖子

52

积分

注册会员

Rank: 2

积分
52
 楼主| 发表于 2007-3-24 23:24:00 | 显示全部楼层

Re:队列的问题

队列是先进先?绨桑?恿型肥窍冉?肴サ模??砸?境?恿型贰

6

主题

471

帖子

1047

积分

金牌会员

Rank: 6Rank: 6

积分
1047
发表于 2007-3-25 19:36:00 | 显示全部楼层

Re:队列的问题

queue队列是先进先出队列,无法删除尾元素,他的pop是删除头元素,
如果不理解要仔细看MSDN,里面都有.

13

主题

46

帖子

52

积分

注册会员

Rank: 2

积分
52
 楼主| 发表于 2007-3-25 21:18:00 | 显示全部楼层

Re:队列的问题

我就是怀疑我不是很理解MSDN这样的解释。下面是MSDN的解释:
queue::pop
void pop();
The member function removes the last element of the controlled sequence, which must be non-empty.

难道这个last element是指队列头?

刚刚我查了一下queue的源文件,看了一下它的实现发觉它是用deque的pop_front()来实现它的pop()函数的,我再看了一下MSDN中给?绲睦?樱??娜肥怯?op来弹?缤吩?氐模?蠢凑娴氖俏依斫獯砹恕O衷谖依斫?楼的意思了。谢谢两位的帮助。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-4-13 02:20

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表