gpt4 book ai didi

C++ 容器选择/选择

转载 作者:行者123 更新时间:2023-11-30 01:29:04 27 4
gpt4 key购买 nike

在 StackOverflow 和其他网站上有很多关于使用哪种类型的 C++ 容器的讨论,得出的结论并不那么令人震惊,“这取决于您的需要”。

目前我在我的界面上使用 std::list,但是我对列表没有直接要求,而不是 vector 或双端队列;这就是我的问题。

我不能说我的要求是什么。今天是一个 list ,明天……谁知道呢?

我一直在思考创建一个包装类“Collection”的想法,它只是公开 STL 容器接口(interface),允许我在需要时更改内部结构而不会破坏我的接口(interface)。

这值得麻烦吗?我应该接受它并根据我当前的需求做出决定吗?

有什么意见吗?

干杯,本

编辑:

线程安全很重要。

重新编译使用接口(interface)的代码是 Not Acceptable 。

最佳答案

如果你打算在你的程序中选择使用不同的容器类型或创建某种运行时优化,你应该编写这样的类,但通常你应该知道容器的用途,所以你知道它是如何使用的,这会导致您的需求。

不要仅仅因为你不了解不同的容器就创建一个你使用的类,因为这是一种资源浪费。在这种情况下,您应该更多地了解一些主要的容器类型,例如 list、vector、queue,可能还有 map,并在需要时使用它们。之所以有这么多,唯一的原因是不同的情况需要不同的容器来使编程更容易,代码更高效。例如,如果你放置和删除很多东西,列表就很好,而如果你做更多的阅读, vector 会更快。当需要按照准确的顺序做事时,队列很好(顺便说一句,priority_queue 是一样的,除了你可以使用特定的顺序), map 很适合散列当前状态或类似的东西。

关于C++ 容器选择/选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6438188/

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