我正在创建一个堆,就像这样:
struct Heap {
int H[100];
int operator [] (int i) { return H[i]; }
//...
};
当我尝试从中打印元素时,我会这样做:
Heap h;
// add some elements...
printf("%d\n", h[3]); // instead of h.H[3]
如果我想设置(而不是访问)它们,就像这样:
for (int i = 0; i < 10; i++) h[i] = i;
我该怎么做?
struct T { value_t& operator[](std::size_t idx) { return mVector[idx]; } const value_t& operator[](std::size_t idx) const { return mVector[idx]; } };
cppreference - V B