fork(2) download
  1. #include <vector>
  2. #include <iostream>
  3. #include <functional> // Necessário para usar o std::less
  4.  
  5. using namespace std;
  6.  
  7. // Sobrecarrega o operador de menor para a classe `vector`
  8. bool operator<(const vector<int>& a, const vector<int>& b)
  9. {
  10. vector<int>::const_iterator aIt = a.begin();
  11. vector<int>::const_iterator bIt = b.begin();
  12.  
  13. bool ret = true;
  14. while(aIt != a.end() && bIt != b.end())
  15. {
  16. //if(*aIt >= *bIt) // <== Mais simples e mais claro. Portanto, melhor.
  17. if(!less<int>()(*aIt, *bIt))
  18. {
  19. ret = false;
  20. break;
  21. }
  22.  
  23. ++aIt;
  24. ++bIt;
  25. }
  26. return ret;
  27. }
  28.  
  29. int main()
  30. {
  31. vector<int> v1 = {5, 3, 8};
  32. vector<int> v2 = {4, 1, 6};
  33.  
  34. // Imprime os vetores para conferência
  35. cout << "v1: ";
  36. for (auto i: v1)
  37. std::cout << i << ' ';
  38. cout << endl;
  39.  
  40. cout << "v2: ";
  41. for (auto i: v2)
  42. std::cout << i << ' ';
  43. cout << endl;
  44.  
  45. // Usa diretamente o operador para verificar se v2 é menor do que v1
  46. cout << "v2 < v1? " << (v2 < v1 ? "SIM" : "NAO") << endl;
  47.  
  48. return 0;
  49. }
Success #stdin #stdout 0s 3468KB
stdin
Standard input is empty
stdout
v1: 5 3 8 
v2: 4 1 6 
v2 < v1? SIM