cin.ignore() và fflush(stdin) và điểm khác biệt khi tự cài stack và queue so với std

C thì dùng: fflush(stdin); C++ thì: cin.ignore(); . Khi ông nhập 1 số ở câu lệnh, nhập xong ông phải enter 1 cái, nó thừa cái enter đó nên nó trôi luôn không cho gets., chứ không dùng được fflush(stdin) cho c++ đâu nhé

Cả 2 cái gets và cin đều lấy dữ liệu từ bộ đệm bàn phím. Có nghĩa là khi bạn gõ bất cứ thứ gì lên keyboard thì điều đầu tiên là keyboard sẽ đẩy nó vào bộ đệm đó trước rồi mới truyền dữ liệu đã nhận được nó cho 2 hàm kia.
Chú ý là cin thì ko nhận được ký tự enter trong khi gets thì lại nhận được và khi nhận được 1 ký tự enter thì nó cũng dừng nhận tiếp nữa.
Đó là lý do khi bạn đang nhập một số và sau khi nhấn enter thì cin chỉ nhận được số đó còn enter vẫn còn lưu trên bộ đệm bàn phím . Và vì gets đi ngay phía sau cin nên nó sẽ quét bộ đệm bàn phím và lấy được ký tự enter đó và cũng xong luôn ko làm gì nữa, chương trình lại đi tiếp.

-stack queue tự cài so với std

thì hàm pop của std thì kiểu là void còn khi mình tự cài thì thường là trả về phần tử bị xóa

std: nó chia thành s1.top() +s1.pop= s1.pop() mình tự cài với s1.top() là phần tử bị xóa

Đọc thêm: