1 bool lexicographicalSmaller(vector<int> a, vector<int> b) 2 { 3 int n = a.size(); 4 int m = b.size(); 5 for(int i = 0; i < n && i < m; i++) 6 { 7 if(a[i] < b[i]) return true; 8 else if(b[i] < a[i]) return false; 9 return i == n && i < m; 10 } 11 }
模板化(应用于定义了“小于”运算符的任意数据类型)
1 template<class T> 2 bool lexicographicalSmaller(vector<T> a, vector<T> b) 3 { 4 int n = a.size(); 5 int m = b.size(); 6 for(int i = 0; i < n && i < m; i++) 7 { 8 if(a[i] < b[i]) return true; 9 else if(b[i] < a[i]) return false; 10 return i == n && i < m; 11 } 12 }
有了模板函数,不管定义的是vector<int>a, b, vector<string>a, b, vector<vector<int> >a, b,全都可以用if(lexicographicalSmaller(a, b))...的方式直接使用上述函数。