【问题标题】:find least among the loop of queues [closed]在队列循环中找到最少[关闭]
【发布时间】:2013-01-16 09:40:07
【问题描述】:

我有一个队列循环(n 队列数),我想搜索所有大小的队列并找到最小大小的队列。

我只是想到了一个逻辑

std::queue<int> q;
/* fill queue ... */
int min_value = INT_MAX;
std::size_t size = q.size();
for( q=2; q=n; q++){ // from the second queue to the end queue
if
 min_value=min.size() > q.size()?
 q.size()=min_value

这个逻辑是否正确,我不确定,谁能帮帮我!

已编辑:我试图弄清楚

std::queue<int> q;
    /* fill queue ... */
    int min_value = INT_MAX;
    std::size_t size = q.size();
    for( q=0; q<n; q++){ // given loop of queues
    if
    (q.size()<min_value) // q.size() is compared with the min_value (limits MAX)
    min_value=q.size(); // any value of my q.size() which is less than INT_MAX will initially be declared the minimum value. On subsequent iterations this value is refined -- if a smaller value is found that's used for future iterations. at the end of loop, i will get the least value.

这个逻辑正确吗?

【问题讨论】:

  • 很难说你的逻辑是否正确,因为有很多语法错误。请发布至少可以编译的内容。
  • 哦,是的,但是你能说一下如何比较每个队列的大小并获得最小值的逻辑,然后我可以用语法锻炼

标签: c++ loops struct queue


【解决方案1】:

你有几个错误:

  1. 包括c++ 在内的大多数语言中的数组都是零索引的,因此循环可能应该是:

    for( q=0; q<n; q++){
    

    注意:您的条件q=n 完全没有意义,会导致无限循环。

  2. 在循环中使用min_value而不是min.size,这没有任何意义。

  3. 在循环中和之前按索引访问队列。我建议您将队列保留在一个向量中,所以这将是:

    std::vector<std::queue<int> > q;
    

    您使用q[i].size() 访问给定队列的大小。

【讨论】:

  • 好的,我可以将队列初始化为 0 并开始循环,正如你所说,使用带有向量的队列是个好主意,但我需要逻辑如何比较每个队列的大小和将其存储在 min_value 中。你对这个逻辑有任何想法吗?
  • 正如您在代码中显示的那样:std::queue 有一个方法 size() 使用它。
  • 这样比较,architects.dzone.com/articles/algorithm-week-minimum-and每种尺寸,会给出最小尺寸吗?
  • @user1983117 确定。这似乎是一种计算最小元素的方式。
  • @user1983117:编程不是写一些东西然后问其他人“这是对的吗?”你需要自己弄清楚。去拿一本书,和你的教授谈谈,等等,无论你需要做什么来完成你的自己的工作。
猜你喜欢
  • 1970-01-01
  • 2020-03-04
  • 1970-01-01
  • 2014-02-17
  • 2010-10-17
  • 2012-05-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多