gpt4 book ai didi

c++ - 为什么没有标准库容器的通用基础?

转载 作者:可可西里 更新时间:2023-11-01 17:09:09 25 4
gpt4 key购买 nike

只是出于兴趣...

如果我要设计一个容器库,我肯定会从一个公共(public)基类派生它们,该基类将具有(可能是抽象的)方法声明,例如 size()insert ()

是否有充分的理由不这样实现标准库容器?

最佳答案

在 C++ 中,继承用于运行时多态(阅读:运行时接口(interface)重用)。它伴随着运行时通过 vtable 进行重定向的开销。

为了让多个容器类拥有相同的接口(interface)(这样API是可预测的,算法可以做出假设),就不需要继承了。只要给他们相同的方法,你就完成了。 C++ 中的容器(和算法)是作为模板实现的,这意味着您可以获得编译时多态性。

这避免了任何运行时开销,并且符合 C++ 的格言“只为你需要的东西付费”。

关于c++ - 为什么没有标准库容器的通用基础?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11467733/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com