是否可以直接从队列成员函数访问一对成员变量?

时间:2014-05-30 01:54:46

标签: c++ queue std-pair

我对前面的队列成员函数有疑问,是否可以直接从队列中访问一对(第一个,第二个)的元素,或者我是否必须创建一个临时变量才能打印它让我们用std::cout

说出来

我想知道是否可以做这样的事情:std:cout<<q.front().first;

感谢阅读和路过,感谢任何信息,这是我的实际代码

#include <queue>
#include <iostream>
using namespace std;
int main(){

    queue<pair<int,int> > q;
    q.push(make_pair(2,0));
    q.push(make_pair(2,0));
    q.push(make_pair(2,90));
    pair<int,int> tmp;
    tmp=q.front();
    q.front()=make_pair(tmp.first,tmp.second+1);
    tmp=q.front();

    cout<<"Second element of Top "<< tmp.second<<endl;
        tmp=q.back();
        cout<<"Second element of Back "<< tmp.second<<endl;
}

这是我得到的输出,但是想直接从控制台获取它而没有临时变量。

Second element of Top 1
Second element of Back 90

1 个答案:

答案 0 :(得分:2)

您正在更改第一个元素,即.front(),但是,您之后会立即将queue.pop()删除。删除q.pop(),即可获得所需的输出。

是的,std::cout<<q.front().first;(假设:是错误的)是有效的。

.front()返回对元素的引用。