[英]Why std::queue doesn't implement insert() while std::deque does?
插入允许插入到结构的任意位置。
std::queue
是FIFO结构的抽象接口。 您只能在最后添加内容。 底层结构不一定具有插入任意位置的有效方法(例如,考虑std::vector
)。 因此std::queue
没有通用的插入成员函数。
由于常规插入函数需要迭代器位置参数,因此为方便起见提供了多次插入,因此您不必跟踪下一个迭代器位置。 不需要回推,因为不需要迭代器跟踪并且微不足道的循环就足够了。
std::queue
是一个适配器, 旨在限制于推/弹出接口。 即使std::vector
是基础实现,它也不会公开insert
。
没有特殊的性能原因,仅是一种设计方法:如果您觉得容器是一个队列,那么就不必公开不需要的接口。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.