You don't have access to the underlying container of a std::priority_queue
, so you can't access any of the std::vector
elements you store in it, other than the top()
element, eg:
priority_queue<pair<int, vector<string>> pq;
pq.push(...);
pq.emplace(...);
...
// use pq.top().second as needed...
You can iterate the strings in the vector
in the pair
returned by top()
, but you can't push_back()
more string into the vector
since the pair
will be const
, and thus the vector
will also be const
.
std::priority_queue
is probably not the best container for you to use. Maybe a std::map
would make more sense?
map<int, vector<string>> m;
m[1] = vector<string>{"I", "a"};
m[1].push_back(...);
Live Demo