zoukankan      html  css  js  c++  java
  • 比较两个序列字典序(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))...的方式直接使用上述函数。

  • 相关阅读:
    遥控器拆卸记录
    计算器拆卸记录
    no matching constructor for initialization
    STL
    排序方法
    二叉树之广度优先遍历
    C++之queue学习记录
    方向电路
    站间联系电路
    求二叉树的最大深度
  • 原文地址:https://www.cnblogs.com/LLGemini/p/3947478.html
Copyright © 2011-2022 走看看