【发布时间】:2015-07-29 05:15:39
【问题描述】:
最近我在做一个不允许使用标准模板库或任何其他模板的 c++ 项目。
我做了一些研究后有点困惑。哪些容器属于标准库而其他容器属于标准模板库?或者我们不说标准库的容器,对吗?
vector 是不是容器? vector是标准库的类还是属于STL?
我希望在标准库中实现一些结构的列表,我可以使用列表或向量吗?
【问题讨论】:
-
据我所知,过去被称为 STL 的是 C++ 标准库的一部分。不再有 STL 容器。它们只是 C++ 标准库的一部分。
-
谢谢 R 萨胡。我在想有时我们不使用 STL 的原因是它需要更多的内存。就像我们使用map一样,每个item的内存都是连续的。所以我想知道当人们说不要使用 STL 时,这意味着使用一些可以节省内存的类/结构/容器。
-
当然,使用标准库的某些部分是否有意义取决于项目,并且确实有一些您不想使用它们的情况。但我有一种感觉,有时这是最糟糕的过早优化形式之一。
-
哎呀,不被允许使用
string真是太糟糕了。或cout,就此而言。我怀疑你提到的制定规则的人并没有真正考虑清楚。您应该反击并询问规则的目的是什么,而不是盲目地接受它们作为教条。 -
谢谢。我在面试时遇到了这个问题。我认为他们希望候选人可以使用指针和类来实现自己的数据结构,而不是使用 STL 中的容器。
标签: c++ stl c++-standard-library