我对前面的队列成员函数有疑问,是否可以直接从队列中访问一对(第一个,第二个)的元素,或者我是否必须创建一个临时变量才能打印它让我们用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
答案 0 :(得分:2)
您正在更改第一个元素,即.front()
,但是,您之后会立即将queue
与.pop()
删除。删除q.pop()
,即可获得所需的输出。
是的,std::cout<<q.front().first;
(假设:
是错误的)是有效的。
.front()
返回对元素的引用。