Я использую 2D-матрицу в одном из моих проектов. Это что-то вроде того, что предлагается в C++ FAQ Lite.Оператор 2D-матрицы и перегрузки()/уродливый синтаксис
Аккуратного то, что вы можете использовать его как это:
int main()
{
Matrix m(10,10);
m(5,8) = 106.15;
std::cout << m(5,8);
...
}
Теперь у меня есть график, состоящий из вершин и каждая вершина имеет публичный указатель (только для простоты примера) в 2D-матрицу как выше. Теперь у меня есть довольно уродливый синтаксис для доступа к нему.
(*sampleVertex.some2DTable)(0,0) = 0; //bad
sampleVertex.some2DTable->operator()(0,0) = 0; //even worse...
Возможно, мне не хватает синтаксического сахара из-за моей неопытности с перегрузкой оператора. Есть ли лучшее решение?
heh, fun hack! :) – 2009-03-26 09:24:49