小编kyl*_*ton的帖子

打印优先级队列

我试图在C++中打印STL priority_queue,但是我在打印队列的所有元素时遇到问题.

priority_queue<Job, vector<Job>, greater<Job>> q = pq;
for(int i = 0; i <= q.size(); i++) {
    cout << q.top() << "\n";
    q.pop();
}
Run Code Online (Sandbox Code Playgroud)

但是,当列表中有一个或两个元素时使用此代码就可以了,但只要我输入三个或更多元素,它就会切断要打印的最后一个项目.我不太确定为什么会发生这种情况,但这让我感到困惑了一会儿.

c++ priority-queue

0
推荐指数
1
解决办法
621
查看次数

增加常量函数中的计数器

我试图记录 while 循环运行了多少次。但是,代码是给我的,我不确定以哪种方式修改代码才能增加代码。

int findPos( const HashedObj & x ) const
{
    int offset = 1;
    int currentPos = myhash( x );

    while( array[ currentPos ].info != EMPTY &&
           array[ currentPos ].element != x )
    {
        currentPos += offset;  // Compute ith probe
        offset += 2;
        incrementCounter++;
        if( currentPos >= array.size( ) )
            currentPos -= array.size( );
    }

    return currentPos;
}
Run Code Online (Sandbox Code Playgroud)

当我编译这个时,我得到“incrementCounter无法修改,因为它是通过const对象访问的”

当我看到这个时,我知道我无法编辑 const 函数中的值,但我不知道该怎么做。

c++ loops

0
推荐指数
1
解决办法
1001
查看次数

标签 统计

c++ ×2

loops ×1

priority-queue ×1