fork download
  1. #include <iostream>
  2. #include <string>
  3. #include <map>
  4. #include <algorithm>
  5.  
  6. int main(){
  7. std::string names_str[7] = {"Alex", "Louis", "Alex", "Simon", "Matthew", "Carl", "Simon"};
  8. int names[7];
  9.  
  10. std::map<std::string, int> counter_map;
  11. int counter = 0;
  12.  
  13. std::transform(std::begin(names_str), std::end(names_str), std::begin(names),
  14. [&](const std::string &name) {
  15. auto ret = counter_map.insert(std::make_pair(name, counter));
  16. if (ret.second) ++counter;
  17. return ret.first->second;
  18. }
  19. );
  20.  
  21. for (int i = 0; i < 7; ++i)
  22. std::cout << names[i] << ' ';
  23. return 0;
  24. }
Success #stdin #stdout 0s 15240KB
stdin
Standard input is empty
stdout
0 1 0 2 3 4 2