优先级队列和结构体

发布于 2024-11-07 10:25:50 字数 1148 浏览 4 评论 0原文

#include <iostream>
#include <queue>
using namespace std;
struct Call
{
    Call( int callNum, long callTime, int callLength ) :
    CallNum( callNum ), CallTime( callTime ), CallLength( callLength ) { }
    int CallNum;
    long CallTime;
    int CallLength;
};

bool operator>( const Call& lhs, const Call& rhs ) {
    return lhs.CallLength > rhs.CallLength;
}

ostream& operator<<( ostream& os, const Call& c ) {
    os << c.CallNum << " " << c.CallTime << " " << c.CallLength;
    return os;
}

int main()
{
    priority_queue< Call, vector<Call>, greater<Call> > q; 
    q.push( Call( 1, 200, 150 ));
    q.push( Call( 2, 300, 950 ));
    q.push( Call( 3, 100, 450 ));
    q.push( Call( 4, 150, 320 ));
    unsigned i=0, n=q.size();
    for ( i=0; i<n; ++i ) {
        cout << q.top() << endl;
        q.pop();
    }
}

这是我的代码。我的问题是,当我使用 q.top(); 时,它会打印到屏幕 callNum, callTime, callLength。但我想单独使用它们。

我的意思是如何仅将 callTime 打印到屏幕上?例如:q.top(callTime); 或者其他什么?谁能帮助我?

#include <iostream>
#include <queue>
using namespace std;
struct Call
{
    Call( int callNum, long callTime, int callLength ) :
    CallNum( callNum ), CallTime( callTime ), CallLength( callLength ) { }
    int CallNum;
    long CallTime;
    int CallLength;
};

bool operator>( const Call& lhs, const Call& rhs ) {
    return lhs.CallLength > rhs.CallLength;
}

ostream& operator<<( ostream& os, const Call& c ) {
    os << c.CallNum << " " << c.CallTime << " " << c.CallLength;
    return os;
}

int main()
{
    priority_queue< Call, vector<Call>, greater<Call> > q; 
    q.push( Call( 1, 200, 150 ));
    q.push( Call( 2, 300, 950 ));
    q.push( Call( 3, 100, 450 ));
    q.push( Call( 4, 150, 320 ));
    unsigned i=0, n=q.size();
    for ( i=0; i<n; ++i ) {
        cout << q.top() << endl;
        q.pop();
    }
}

This is my code. My problem is, When I use q.top(); it prints to screen callNum, callTime, callLength. But I want to use them seperately.

I mean How can I print to screen just callTime? for ex: q.top(callTime); or something else? who can help me?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

世界等同你 2024-11-14 10:25:50

您只是在寻找:

cout << q.top().CallNum << endl;

等等吗?

Are you just looking for:

cout << q.top().CallNum << endl;

and so on?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文