diff options
Diffstat (limited to 'contrib/libstdc++/tests/tmap.cc')
| -rw-r--r-- | contrib/libstdc++/tests/tmap.cc | 59 | 
1 files changed, 59 insertions, 0 deletions
diff --git a/contrib/libstdc++/tests/tmap.cc b/contrib/libstdc++/tests/tmap.cc new file mode 100644 index 000000000000..900e66f506bd --- /dev/null +++ b/contrib/libstdc++/tests/tmap.cc @@ -0,0 +1,59 @@ +#include <map.h> +#include <algo.h> +#include <iostream.h> +#include <function.h> + +#define int_less less<int> +struct str_less { +  bool operator() (char* x, char* y) const { return strcmp(x,y) < 0; } +}; + +#if 0 +int SIZE; + +void add(int x[], int y[], map<int,int, int_less>& a) +{ +  for (int i = 0; i < SIZE; ++i) a[x[i]] = y[i]; +} +#endif + +int +main(int argv, char** argc) +{ +#if 0 +  if (argv > 1) +  { +    SIZE = abs(atoi(argc[1])); +    SIZE &= ~1; +  } +  else +    SIZE = 100; +  nums = new int[SIZE]; +  odds = new int[SIZE]; +  perm = new int[SIZE]; +#endif + +  map<int, int, int_less> my_map; + +  map<char*, int, str_less> phones; + +  my_map[4] = 40; +  my_map[2] = 20; + +  // The (char*) is needed because g++ doesn't +  // convert char[] to char* in this context. +  phones[(char*)"tom"] = 2345; +  phones[(char*)"dick"] = 5678; +  phones[(char*)"harry"] = 7654; + +  cout << "2 -> " << my_map[2] << endl; +  cout << "4 -> " << my_map[4] << endl; + +  map<int, int, int_less>::iterator it = my_map.begin(); +  for ( ; it != my_map.end(); it++) +    cout << "my_map[" << (*it).first << "] = " << (*it).second << endl;  + +  map<char*, int, str_less>::iterator pit = phones.begin(); +  for ( ; pit != phones.end(); pit++) +    cout << "phones[" << (*pit).first << "] = " << (*pit).second << endl;  +}  | 
