
Hi, Doug!
Thanks a lot for your reply, you've solved my issue.
Best regards, Alex.
"Doug Gregor"
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
D(xx, vector<double>(xx)); - Doug