如何在课堂内的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];
}
}
答案 0 :(得分:2)
要编写在STL上下文中有用的数组,您需要查看容器需求并实现相应的功能。特别是,为了使STL算法可以访问序列,您需要实现begin()
和end()
方法来提供对内容的访问。根据您是想要一个固定大小的数组还是一个可变大小的数组,可以查看std::array<T, N>
或std::vector<T>
以了解合理的接口。
答案 1 :(得分:0)
假设您想了解模板化数组实现的工作原理,请查看Boost的array.hpp
。