Существует ли стандартный способ доступа к базовому контейнеру stack, queue, priority_queue?
Я нашел метод под названием _Get_container() в VS2008 реализации stack и queue, но не для priority_queue! Я думаю, что это не стандарт.
Кроме того, я знаю, что это глупый вопрос! где я могу найти официальную документацию стандартной библиотеки?
Просто для уточнения, я не пытался испортить основной контейнер. Все, что я пытался сделать, это следующее:
template <class Container>
std::ostream& printOneValueContainer(std::ostream& outputstream, Container& container)
{
Container::const_iterator beg = container.begin();
outputstream << "[";
while(beg != container.end())
{
outputstream << " " << *beg++;
}
outputstream << " ]";
return outputstream;
}
// stack, queue
template
< class Type
, template<class Type, class Container = std::deque<Type> > class Adapter
>
std::ostream& operator<<(std::ostream& outputstream, const Adapter<Type>& adapter)
{
return printOneValueContainer(outputstream, adapter._Get_container());
}
.
.
.
std::stack<int> iStack;
.
.
std::cout << iStack << std::endl;
Надеюсь, вы видите, что _Get_container() не является стандартным, а для priority_queue в VS2008 не существует ни одного.