How to preallocate(reserve) a priority_queue<vector>?
问题 How can I preallocate a std::priority_queue with a container of type std::vector ? std::priority_queue<unsigned char, std::vector<unsigned char>> pq; pq.c.reserve(1024); Does not compile because the underlying vector is a protected member. Is it possible to use the constructor of the priority_queue to wrap it around a pre-reserved vector? 回答1: Yes, there's a constructor for that. It's slightly tedious that you also have to specify a comparator: std::vector<unsigned char> container; container