Tôi đang tìm kiếm một cấu trúc dữ liệu sẽ đẩy phần tử cũ nhất / cuối cùng của nó ra nếu phần tử mới được chèn vào. Ví dụ, hãy Dđại diện cho cấu trúc. Dchứa 3 phần tử của các Number Dgiá trị mặc định của loại sẽ được khởi tạo 1, 2và 3.
Nếu một Numbercái có chứa giá trị 5được chèn vào D, 3sẽ bị đẩy ra, trong khi 1và 2được dịch sang phải.
Điều đầu tiên xuất hiện trong đầu sẽ là một mảng, nhưng định nghĩa không bao gồm hành vi đẩy.
void push_replace(T val) { pop(); push(val); }.
T push_replace(T val) { T old = pop(); push(val); return old; }
pop()trả về không có gì do vấn đề với ngăn xếp ngăn xếp trong trường hợp ngoại lệ sao chép một đối tượng phức tạp, vì vậy bạn nên sử dụng front()trước nếu bạn cần trước khi loại bỏ. Nhưng chắc chắn, nếu bạn không quan tâm đến ngoại lệ, cách của bạn có thể tốt hơn.