fork download
  1.  
  2. #include <iostream>
  3. #include <set>
  4.  
  5. template <typename C>
  6. int insert_get_index(C& container, typename C::value_type value)
  7. {
  8. typename C::iterator it = container.insert(value).first;
  9. return std::distance(container.begin(), it);
  10. }
  11.  
  12. int main()
  13. {
  14. int a = 3, b = 1, c = 9;
  15. std::set<int*> set;
  16.  
  17. std::cout << insert_get_index(set, &a) << "\n";
  18. std::cout << insert_get_index(set, &b) << "\n";
  19. std::cout << insert_get_index(set, &c) << "\n";
  20. std::cout << insert_get_index(set, &a) << "\n";
  21. std::cout << insert_get_index(set, &b) << "\n";
  22. std::cout << insert_get_index(set, &c) << "\n";
  23.  
  24. return 0;
  25. }
  26.  
Success #stdin #stdout 0s 3428KB
stdin
Standard input is empty
stdout
Standard output is empty