fork download
  1. #include <iostream>
  2. #include <iomanip>
  3. #include <algorithm>
  4. #include <vector>
  5.  
  6. template <typename T>
  7. int sign (const T &val) { return (val > 0) - (val < 0); }
  8.  
  9. template <typename T>
  10. std::vector<int> sign (const std::vector<T> &v) {
  11. std::vector<int> r(v.size());
  12. std::transform(v.begin(), v.end(), r.begin(), (int(*)(const T&))sign);
  13. return r;
  14. }
  15.  
  16. int main ()
  17. {
  18. std::vector<short> values;
  19. std::vector<int> signs;
  20. for (int i = -5; i < 6; ++i)
  21. values.push_back(i);
  22. signs = sign(values);
  23. for (unsigned i = 0; i < values.size(); ++i) {
  24. std::cout << std::setw(2) << values[i] << ' ' << signs[i] << std::endl;
  25. }
  26. return 0;
  27. }
Success #stdin #stdout 0.02s 2816KB
stdin
Standard input is empty
stdout
-5 -1
-4 -1
-3 -1
-2 -1
-1 -1
 0 0
 1 1
 2 1
 3 1
 4 1
 5 1