C++11 如何在此队列中找到最大值?

C++11 如何在此队列中找到最大值?,c++11,queue,C++11,Queue,我想在这个队列中找到最大值,如何解决这个问题 queue<pair<int , int> > q; for(int i = 1; i <= n; i++){ int p; cin >> p; q.push(make_pair(p, i)); } 队列q; 对于(inti=1;i>p; q、 推(作配对(p,i)); } 我希望我正确理解了您的问题,如果没有,请留下评论,请检查此代码,我希望它能满足您的需要 queue<pa

我想在这个队列中找到最大值,如何解决这个问题

queue<pair<int , int> > q;
 for(int i = 1; i <= n; i++){ 
  int p; 
  cin >> p; 
  q.push(make_pair(p, i)); 
 }
队列q;
对于(inti=1;i>p;
q、 推(作配对(p,i));
}

我希望我正确理解了您的问题,如果没有,请留下评论,请检查此代码,我希望它能满足您的需要

queue<pair<int , int> > q; 
int max=-1;//you can use INT_MIN in case you're accepting negative numbers too 

for(int i = 1; i <= n; i++)
{ 
int p;
 cin >> p; 
//if you need to be based ONLY on user input 
if(p > max) max = p;
//if you need to be based on BOTH user input and current i
//if(p+i > max) max = p+I;
//if you need to be based on ONLY current i
//if(i > max) max = i;
q.push(make_pair(p, i)); 

}
队列q;
int max=-1;//如果您也接受负数,可以使用int_MIN
对于(inti=1;i>p;
//如果您只需要基于用户输入
如果(p>max)max=p;
//如果需要同时基于用户输入和当前i
//如果(p+i>max)max=p+i;
//如果您只需要基于当前的i
//如果(i>max)max=i;
q、 推(作配对(p,i));
}

到目前为止您做了什么?
队列q;for(int i=1;i>p;q.push(make_pair(p,i))}
要在该代码中查找最大值…定义一个变量max,使其等于第一个元素。从队列中逐个弹出或退出所有元素,每次与您定义的最大变量进行比较,如果当前元素大于最大值,则在拥有最大值元素的末尾使max=current