01/10/2018, 01:13

Lower_bound/ upper_bound có dùng được cho queue?

Mình mới học về c++, cho mình hỏi lower_bound/ upper_bound có dùng được cho queue không?
Mình cảm ơn.

明玉 viết 03:16 ngày 01/10/2018

Queue của c++ không có public iterator, cũng không thể truy xuất ngẫu nhiên => không dùng upper_bound với lower_bound được.
Nếu bạn thích phiêu lưu thì bạn có thể kế thừa class std::queue rồi lôi iterator ẩn của nó ra, tham khảo: http://stackoverflow.com/questions/1259099/stdqueue-iteration (Edit: coi chừng destructor không chạy)
Hoặc đơn giản là đổi sang dùng deque cho đầy đủ sung túc

viết 03:28 ngày 01/10/2018

@_@ đừng bao giờ kế thừa từ STL container, tại vì nó ko có virtual dtor.

lower_bound, upper_bound đòi hỏi container phải sắp xếp sẵn rồi, vector/deque gì thì cũng phải sắp xếp rồi mới xài chính xác được.

rogp10 viết 03:28 ngày 01/10/2018

Mà đã sort rồi thì sao gọi là queue (đương nhiên priority_queue là chuyện khác).

Vậy tóm lại thớt muốn làm gì

明玉 viết 03:27 ngày 01/10/2018

Là queue được chứ, cứ push theo thứ tự là được thôi.

Bài liên quan
0