首页 > 代码库 > 比较两个序列字典序(lexicographicallySmaller)

比较两个序列字典序(lexicographicallySmaller)

 

 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 }
View Code

有了模板函数,不管定义的是vector<int>a, b, vector<string>a, b, vector<vector<int> >a, b,全都可以用if(lexicographicalSmaller(a, b))...的方式直接使用上述函数。

比较两个序列字典序(lexicographicallySmaller)