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