firstとsecondは、pairという型の第1要素、第2要素を指します。
Queueの要素の型がpairで、pairの要素の型を<string, int>と仮定すると、top()で取り出した値の型は、pair<string, int>になります。その値の第1要素のstringを得たい場合は、.firstのようにしてアクセスします。
pp.top().secondというのは、pp.top()とtop.secondを一度にやっているのです。
lang
1#include <iostream>
2#include <queue>
3
4using namespace std;
5
6int main()
7{
8 priority_queue<pair<string, int> > pp;
9
10 pp.push(pair<string, int>("aa", 11));
11 pp.push(pair<string, int>("bb", 22));
12 pp.push(pair<string, int>("cc", 33));
13
14 pair<string, int> top = pp.top();
15 string first = top.first; // => cc
16 int second = top.second; // => 33
17 int second_ = pp.top().second; // => 33
18
19 cout << "top = (" << first << "," << second << ")" << endl;
20
21 return 0;
22}
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2014/10/13 13:24