如何在c ++中用stl编写数组

时间:2012-12-23 18:59:32

标签: c++

如何在课堂内的array中写一个stl?我想写一个array in stl并重载运算符 在c ++ ()[]我知道如何重载运算符,但我不知道stl如何工作... 我可以像下面这样重载运算符()[]我在这里使用矩阵作为示例来说明我如何重载运算符

int* operator[] (int i) {
        if (i < 10) 
        {
            return matrix[i];
        }

    }

    int* operator() (int i) {
        if (i < 10) 
        {
            return matrix[i];
        }

    }

2 个答案:

答案 0 :(得分:2)

要编写在STL上下文中有用的数组,您需要查看容器需求并实现相应的功能。特别是,为了使STL算法可以访问序列,您需要实现begin()end()方法来提供对内容的访问。根据您是想要一个固定大小的数组还是一个可变大小的数组,可以查看std::array<T, N>std::vector<T>以了解合理的接口。

答案 1 :(得分:0)

假设您想了解模板化数组实现的工作原理,请查看Boost的array.hpp