3 XCSoar Glide Computer - http://www.xcsoar.org/
4 Copyright (C) 2000-2013 The XCSoar Project
5 A detailed list of copyright holders can be found in the file "AUTHORS".
7 This program is free software; you can redistribute it and/or
8 modify it under the terms of the GNU General Public License
9 as published by the Free Software Foundation; either version 2
10 of the License, or (at your option) any later version.
12 This program is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
17 You should have received a copy of the GNU General Public License
18 along with this program; if not, write to the Free Software
19 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
24 This code courtesy of unknown author at
25 http://stackoverflow.com/questions/3666387/c-priority-queue-underlying-vector-container-capacity-resize
28 #ifndef RESERVABLE_PRIORITY_QUEUE_HPP
29 #define RESERVABLE_PRIORITY_QUEUE_HPP
33 template<class T
, class Container
, class Compare
>
34 class reservable_priority_queue
:
35 public std::priority_queue
<T
, Container
, Compare
>
38 typedef typename
std::priority_queue
<T
, Container
, Compare
>::size_type size_type
;
39 reservable_priority_queue(size_type capacity
= 0) {
43 void reserve(size_type capacity
) {
44 this->c
.reserve(capacity
);
47 size_type
capacity() const {
48 return this->c
.capacity();