簡體   English   中英

為什么std :: queue不實現std :: deque而實現insert()?

[英]Why std::queue doesn't implement insert() while std::deque does?

我正在閱讀std::queue ,我想知道為什么沒有方法可以通過單個操作有效地插入多個元素,而std::deque提供了std::deque::insert嗎?

插入允許插入到結構的任意位置。

std::queue是FIFO結構的抽象接口。 您只能在最后添加內容。 底層結構不一定具有插入任意位置的有效方法(例如,考慮std::vector )。 因此std::queue沒有通用的插入成員函數。

由於常規插入函數需要迭代器位置參數,因此為方便起見提供了多次插入,因此您不必跟蹤下一個迭代器位置。 不需要回推,因為不需要迭代器跟蹤並且微不足道的循環就足夠了。

std::queue是一個適配器, 旨在限制於推/彈出接口。 即使std::vector是基礎實現,它也不會公開insert

沒有特殊的性能原因,僅是一種設計方法:如果您覺得容器是一個隊列,那么就不必公開不需要的接口。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM