fork download
  1.  
  2. #include <iostream>
  3. #include <algorithm>
  4. #include <string>
  5.  
  6. template<int N>
  7. bool char_array_less(const char(&l)[N], const char(&r)[N])
  8. {
  9. return std::char_traits<char>::compare(&l[0], &r[0], N) < 0;
  10. }
  11.  
  12. template<int N>
  13. void swap_char_arrays( char(*l)[N], char(*r)[N])
  14. {
  15. std::swap_ranges(&(*l)[0], &(*l)[0]+N, &(*r)[0]);
  16. }
  17.  
  18. const int ROWS = 105;
  19. const int COLS = 105;
  20. int main()
  21. {
  22. char a[ROWS][COLS] = {"foo", "bar", "whatever" };
  23.  
  24. for(char(*i)[COLS] = a; i != a+ROWS; ++i)
  25. swap_char_arrays(i,
  26. std::min_element(i, a+ROWS, char_array_less<COLS>));
  27.  
  28. for(int i=0; i<ROWS; ++i)
  29. std::cout << a[i] << '\n';
  30. }
Success #stdin #stdout 0s 2724KB
stdin
Standard input is empty
stdout





































































































bar
foo
whatever