【发布时间】:2012-03-17 02:04:46
【问题描述】:
我只是在探索 C++ 中的 STL 容器。有一些问题... 有两个成员函数 max_size() 和 size()。他们似乎在做同样的事情。我最初认为 max_size() 是数组的实际大小,而 size() 是显式存储的元素数。但是当我测试它时,情况并非如此。那为什么是两个不同的函数呢?
有什么地方可以让我阅读 Java 中容器的设计规范(不是功能描述)?我似乎有很多问题,例如为什么 std::array 大小是固定的,但不能像 std::vector 等那样动态更改。显然,这样的设计决策有一个或另一个原因。阅读此类设计规范以了解此类限制将很有用。我有一个不包括 std::array 的旧“有效 STL”。我相信 Scott meyers 还没有在其中包含 std::array。
【问题讨论】:
-
如果
array与vector相同,则不需要两者之一,对吧?实际上,array更接近于tuple而不是vector。您可以从 GitHub 下载实际标准,以便您自己检查每个容器是什么。