STL容器需求

Bar*_*uch 4 c++ stl

标准要求some_container<T>::value_typeT吗?

我在问,因为我正在考虑实现符合STL的2d动态数组的不同方法.其中之一是有2Darray<T>::value_type2Darray_row<T>或类似的东西,这里的阵列将作为迭代行的集合(有点简单化.我的实际执行允许重复在3个方向)

Die*_*ühl 5

容器要求有点时髦,因为它们实际上并未被任何通用算法使用.从这个意义上说,它并不重要.

也就是说,要求是在容器的接口上,而不是关于容器实际实例化的方式.甚至非模板类也可以符合各种要求,事实上也可以.要求value_type是存在的; 它的定义完全取决于容器的实现.

  • @Angew:所有这些语句都说`X`是一个容器,其`value_type`恰好是`T`.没有要求`X`拼写为`some_identifier <T>`(对于某个标识符`some_identifier`),这就是这个问题的内容.所有语句都说`X`是容器名,其元素类型是`T`类型,这显然暗示`X :: value_type`是`T`(有点像重言式). (2认同)