-1

我有一个队列循环(队列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.

这个逻辑正确吗?

4

1 回答 1

2

你有几个错误:

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

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

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

  2. 在循环中使用min_valuenot min.sizewhich 没有任何意义。

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

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

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

于 2013-01-16T09:53:10.857 回答