>vector<vector<TableMatrix> > my_table;Вектор векторов - крайне неэффективно и в плане памяти, и быстродействия, и удобства использования. Кроме того, для матриц, хранящихся в одномерных массивов в STL есть такая удобная штука, как срезы.
>String v= my_table[Row][Col].Value;
>String c= my_table[Row][Col].ColName;
>
>т.е алгоритм begin не понимает переменную типа my_table[0].Value.
Такого вообще не существует.
my_table[0] - это vector<TableMatrix>, у него, разумеется, нет никаких .Value.
>Можно не использовать структуру
Если ты собираешься использовать стандартные алгоритмы, надо как минимум определить operator < для TableMatrix, или передавать в max_element функтор, сравнивающий твои структуры.
> max_element(my_table.begin(), my_table.end());
В твоем vector<vector<TableMatrix> > это СРАВНИВАЕТ ВЕКТОРА!!!