我希望通过为vector创建一个运算符来使编码更容易。
我有一个班级Voxelgrid
:
class Voxelgrid {
struct Voxel{
float dist;
float weight;
};
vector<Voxel> grid;
int RESOLUTION;
};
现在问题是我想要访问和写入这些体素很多,我将使用索引来访问它们:
grid[i + j*RESOLUTION + k*RESOLUTION*RESOLUTION].distance
例如。
是否可以编写运算符以便我可以编写
grid(i,j,k).distance
代替。
答案 0 :(得分:0)
例如
class Voxelgrid
{
public:
const Voxel & operator []( std::vector<Voxel>::size_type i ) const
{
return grid[i];
}
//...
};
或者您可以定义成员函数
class Voxelgrid
{
public:
const Voxel & GetVoxel( size_type i, size_type j, size_type k ) const
{
return grid[i + j*RESOLUTION + k*RESOLUTION*RESOLUTION];
}
//...
};