【问题标题】:Is it possible to access a member variable of a pair from queue member function directly?是否可以直接从队列成员函数访问一对成员变量?
【发布时间】:2014-05-30 01:54:46
【问题描述】:

我对前后队列成员函数有疑问,是否可以直接从队列中访问一对元素(第一,第二),或者我是否必须创建一个临时变量才能打印它让我们说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

【问题讨论】:

    标签: c++ queue std-pair


    【解决方案1】:

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

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

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

    【讨论】:

    • 这是上一个已删除问题的答案
    • 谢谢,我再次检查了我的代码,你是对的,我编辑了问题并添加了一个简短的评论,说明为什么我删除了修改值的部分)我仍然有疑问的是控制台输出部分。
    猜你喜欢
    • 1970-01-01
    • 2012-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-30
    • 1970-01-01
    • 2022-01-03
    • 2015-12-06
    相关资源
    最近更新 更多