Help me! Как очисть STL'вскую очередь (queue)?
От: Kost  
Дата: 19.07.02 05:55
Оценка:
У других контейнеров есть функция clear, а у queue нет!?
Re: Help me! Как очисть STL'вскую очередь (queue)?
От: Flamer Кипр http://users.livejournal.com/_flamer_/
Дата: 19.07.02 06:00
Оценка:
Здравствуйте Kost, Вы писали:

K>У других контейнеров есть функция clear, а у queue нет!?


а если так:



while( !you_queue.empty() ) you_queue.pop();
Re: Help me! Как очисть STL'вскую очередь (queue)?
От: Webstyler  
Дата: 19.07.02 06:05
Оценка:
Здравствуйте Kost, Вы писали:

K>У других контейнеров есть функция clear, а у queue нет!?


while(!some_queue.empty())
some_queue.pop();

или создайте свой класс где будет функция clear() :)
Re: Help me! Как очисть STL'вскую очередь (queue)?
От: Bell Россия  
Дата: 19.07.02 06:47
Оценка:
Здравствуйте Kost, Вы писали:

K>У других контейнеров есть функция clear, а у queue нет!?

Класс queue в protected секции содержит контейнер, в котором собственно и хранятся объекты (по усолчанию это deque).
Поэтому оптимальный по скорости метод — унаследовать от queue класс, и определить для него метод clear() в котором вызвать clear() для внутреннего контейнера.
Любите книгу — источник знаний (с) М.Горький
Re: А почему так?
От: bkat  
Дата: 19.07.02 06:54
Оценка:
А кто знает в чем причина, почему нет у queue метода clear().
Может есть какое-то философское обоснование этого?
Может если возникла необходимость в clear(), то уже нужна не очередь,
а что-то другое?
Re: Help me! Как очисть STL'вскую очередь (queue)?
От: Kaa Украина http://blog.meta.ua/users/kaa/
Дата: 19.07.02 06:59
Оценка: 5 (1)
Здравствуйте Kost, Вы писали:

K>У других контейнеров есть функция clear, а у queue нет!?


typedef std::queue... Q;
...
q.~Q()
new( &q ) Q();


Можно так. Но увлекаться не советую.
Алексей Кирдин
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.