
On Jul 2, 2007, at 6:26 AM, Alex Ivanov wrote:
//AFAIK it's impossible to declare array using directive below in runtime: double [xx][xx] D; //Compiler says the same: "C2057: expected constant expression" //even code: double [(const int)xx][(const int)xx] D; //won't work, so the only option left is to make a pointer: double* D = new [xx*xx] ;
//but both "floyd_warshall_all_pairs_shortest_paths" and "johnson_all_pairs_shortest_paths" are declared to take a reference, not a pointer, so you'll get multiple compile errors, if you try to compile like below:
floyd_warshall_all_pairs_shortest_paths(G, D);
The DistanceMatrix is expected to be subscripted twice, so you would
need something like:
typedef double* double_array;
double_array* D = new double_array[xx];
for (int i = 0; i < xx; ++i)
D[i] = new double [xx];
Or, you could use a vector of vectors:
vector