,但我怎麼能打印隊列中的所有元素「my_queue_of_queues」?
選項1使用operator<<
代替print
。
template<typename T>
std::ostream& operator<<(std::ostream& out, queue<T> const& q)
{
// Don't modify the input.
// Create a copy and modify the copy.
queue<T> copy(q);
while(!copy.empty())
{
T x;
copy.pop(x);
out << x << " ";
}
return out;
}
選項2更新print
並調用operator<<
功能重新直接執行。
template<typename T>
void queue<T>::print()
{
cout << *this;
}
選項3更新print
並調用operator<<
功能重新直接執行,而且通過一個std::ostream
到print
。不要假設cout
在print
。
template<typename T>
void queue<T>::print(std::ostream& out)
{
out << *this;
}