首页 > 代码库 > 比较两个序列字典序(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 }
有了模板函数,不管定义的是vector<int>a, b, vector<string>a, b, vector<vector<int> >a, b,全都可以用if(lexicographicalSmaller(a, b))...的方式直接使用上述函数。
比较两个序列字典序(lexicographicallySmaller)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。