STL容器申请
STL container requierments
本文关键字:STL 更新时间:2023-10-16
标准是否要求 some_container<T>::value_type
为 T
?
我之所以要问,是因为我正在考虑实现符合STL符合STL的2D动态阵列的不同方法。其中之一是让2Darray<T>::value_type
为2Darray_row<T>
或类似的东西,其中数组会迭代为行集合(有点简化。我的实际实现允许在3个方向上进行迭代)
容器需求有点时髦,因为它们实际上没有任何通用算法使用它们。从这个意义上说,这并不重要。
也就是说,这些要求在容器的接口上,而不是在容器实际实例化上。即使是非网板类也可以符合各种要求,实际上也可以遵守。要求是存在value_type
;它定义的完全取决于容器实现。
§23.2.1中的表96在标准(C 11)中需要一个容器类X
包含T
类型的对象以返回T
的CC_8。
因此,如果您的some_container
存储类型T
的对象,则value_type
必须为T
。
具有嵌套容器(SO colArray<rowArray<T> >
)或具有单个包装(2dArray<T>
),但不要尝试混合它们。嵌套方法使您可以一直使用STL(vector<vector<T> >
),但可能会令人困惑,并且不允许您列出迭代器等。
此答案使用UBLAS,另一个建议使用Boost Multi-Arrays。
通常,如果可以的话,请选择STL或Boost选项。您不太可能自己写东西。
相关文章:
- 没有找到相关文章