Здравствуйте, Аноним, Вы писали:
А>Как удалить элемент из std::queue, если он не первый?
Если Вам требуется удалять произволные элементы из контейнера, то лучше попробовать std::vector или std::list.
В принципе std::queue это не контейнер, а адаптер над контейнером (скорее всего над std::vector).
Вытолкнуть все элемены, перед ним стоящие. А если серьезно, то queue для этого не предназначен. Используй что-то другое (deque, list например)
Of course, the code must be complete enough to compile and link.
Re[2]: Удаление элемента из std::queue
От:
Аноним
Дата:
10.02.04 10:27
Оценка:
Здравствуйте, VNG, Вы писали:
VNG>Здравствуйте, Аноним, Вы писали:
А>>Как удалить элемент из std::queue, если он не первый?
VNG>Если Вам требуется удалять произволные элементы из контейнера, то лучше попробовать std::vector или std::list. VNG>В принципе std::queue это не контейнер, а адаптер над контейнером (скорее всего над std::vector).
Да, я это понимаю.
Но мне надо удалять элементы редко.
И вообще, наверное возможно обратиться в std::deque, в котором std::queue хранит данные.
Здравствуйте, Lorenzo_LAMAS, Вы писали:
L_L>Вытолкнуть все элемены, перед ним стоящие. А если серьезно, то queue для этого не предназначен. Используй что-то другое (deque, list например)
Здравствуйте, Аноним, Вы писали:
А>Здравствуйте, VNG, Вы писали:
VNG>>Здравствуйте, Аноним, Вы писали:
А>>>Как удалить элемент из std::queue, если он не первый?
VNG>>Если Вам требуется удалять произволные элементы из контейнера, то лучше попробовать std::vector или std::list. VNG>>В принципе std::queue это не контейнер, а адаптер над контейнером (скорее всего над std::vector).
А>Да, я это понимаю. А>Но мне надо удалять элементы редко. А>И вообще, наверное возможно обратиться в std::deque, в котором std::queue хранит данные.
Попробуй "насильственно" привести std::queue в std::deque и работать уже с std::deque.
Здравствуйте, VNG, Вы писали:
VNG>Попробуй "насильственно" привести std::queue в std::deque и работать уже с std::deque.
Ну вот так вот точно делать не стоит. Если уж так важен доступ к внутреннему контейнеру — используй наследование, и в классе — наследнике используй защищенный член c.
Здравствуйте, Bell, Вы писали:
B>Здравствуйте, VNG, Вы писали:
VNG>>Попробуй "насильственно" привести std::queue в std::deque и работать уже с std::deque.
B>Ну вот так вот точно делать не стоит. Если уж так важен доступ к внутреннему контейнеру — используй наследование, и в классе — наследнике используй защищенный член c.
Здравствуйте, Bell, Вы писали:
B>Ну вот так вот точно делать не стоит. Если уж так важен доступ к внутреннему контейнеру — используй наследование, и в классе — наследнике используй защищенный член c.
Соглосен, что что криво, но я продложил этот вариант исходя из того, что товарищу надо только в исключительном
случае удалить произвольный элемент из std::queue. Если же это не так, то стоит задуматься о целесообразности
использования std::queue.
Re[6]: Удаление элемента из std::queue
От:
Аноним
Дата:
10.02.04 11:11
Оценка:
Здравствуйте, VNG, Вы писали:
VNG>Здравствуйте, Bell, Вы писали:
B>>Ну вот так вот точно делать не стоит. Если уж так важен доступ к внутреннему контейнеру — используй наследование, и в классе — наследнике используй защищенный член c.
VNG>Соглосен, что что криво, но я продложил этот вариант исходя из того, что товарищу надо только в исключительном VNG>случае удалить произвольный элемент из std::queue. Если же это не так, то стоит задуматься о целесообразности VNG>использования std::queue.
Да, я понимаю, что в таком случае от std::queue придется отказаться.
Оказывается, он вообще не предназначен для удаления произвольного элемента.
Просто в моём случае это потребует большой переделки кода.