446,234 Members | 1,941 Online Need help? Post your question and get tips & solutions from a community of 446,234 IT Pros & Developers. It's quick & easy.

# problem when a map type variable uses an integer created with random() to access its elements

 P: n/a Hi I isolated this code which gives me odd results and I am not sure to understand why. Basically I declared "positions" as a map that I am using to store pairs of integers. The key used for the map is an integer as well. When I access the values of a pair by using a "normal" integer as an index to access the elements positions contains, it works fine. If I use an integer that I created using the random() function, then the first value which is return for the pair is this index number and the second is 0. More practically int a = 1001; cout << positions[a].first << " " << positions[a].second << endl; // will return 1 1 which is correct int r = (int)(( random() / ( float ) RAND_MAX ) * 1000); // let's say r = 843 cout << positions[r].first << " " << positions[r].second << endl; // will return 843 0 Any idea why ? Here is the complete code ... int width = 1000; int height = 1000; map > positions; int r = (int)(( random() / ( float ) RAND_MAX ) * 1000); for (int j = 0; j < height; j++) { for (int i = 0; i < width; i++) { positions[ j * width + i ] = pair(i, j); } } cout << a << " " << (int)(positions[r].first) << " " << positions[r].second << endl; // doesn't work Thanks a lot -jp Jul 22 '05 #1 