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. D
chứa 3 phần tử của các Number
D
giá trị mặc định của loại sẽ được khởi tạo 1, 2
và 3
.
Nếu một Number
cái có chứa giá trị 5
được chèn vào D
, 3
sẽ bị đẩy ra, trong khi 1
và 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.