STL容器申请

STL container requierments

本文关键字:STL      更新时间:2023-10-16

标准是否要求 some_container<T>::value_typeT

我之所以要问,是因为我正在考虑实现符合STL符合STL的2D动态阵列的不同方法。其中之一是让2Darray<T>::value_type2Darray_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选项。您不太可能自己写东西。

相关文章:
  • 没有找到相关文章