[ruby-core:124506] [Ruby Feature#21821] Add Stack and SizedStack classes
Issue #21821 has been updated by ko1 (Koichi Sasada). I heard that C++ has deque: Double-Ended Queue https://en.cppreference.com/w/cpp/container/deque.html * The sound of `Deque` is similar to `dequeue` or `deq` (operation names). so introducing `Dequeue` seems not good idea. * If we assume the implementation of `Queue` is based on `Dequeu`, adding `pop_back()` (LIFO operation) seems reasonalbe, and easy to introduce than introducing new classes, and good aligned to Ruby's large-class philosophy. I want to ask Matz again. I'm afraid that expanding the similar idea like `Thread::Heap`, `Thread::PriorityQueue` and so on, atomic containers for each data structure. ---------------------------------------- Feature #21821: Add Stack and SizedStack classes https://bugs.ruby-lang.org/issues/21821#change-116066 * Author: byroot (Jean Boussier) * Status: Open * Target version: 4.1 ---------------------------------------- ### Context `Queue` and `SizedQueue` are very useful and performant constructs, however they only allow for FIFO queues. Some use cases do call for LIFO queues AKA stacks. For instance, in the case of connection pool, it's often preferable to use a stack. ### Feature I'd like to introduce `Stack` and `SizedStack` classes, to mirror `Queue` and `SizedQueue`. They'd have exactly the same method and behavior at the exception of dequeuing order. ### Thread namespace? Currently `Queue` and `SizedQueue` are technically defined under `Thread` and aliased in `Object`. I wonder if that's something we should do for `Stack` too, or just some historical thing we shouldn't perpetuate. -- https://bugs.ruby-lang.org/
participants (1)
-
ko1 (Koichi Sasada)