博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
版本号比较(Compare two Version numbers)
阅读量:4099 次
发布时间:2019-05-25

本文共 1465 字,大约阅读时间需要 4 分钟。

原文地址:

版本号是用来识别软件产品状态的字符串,一个版本号看起来像a.b.c.d,这里的a,b等都是数字,所以版本号是数字用点分开的字符串。版本号一般是从最大到最小这么个层级表示的(这里a是最大的,d是最小的)。

在这个问题中,我们已知两个版本号,然后我们通过比较得出哪个是最近的版本号(也就是说哪个版本号更小)。【译者注:这里貌似跟我没一般的版本号规则有点差异,我们一般是数字越大,版本越新,不过随便了,这里的重点不是大小与新旧的关系】

例如,如果V1 = “1.0.31”V2 = “1.0.27”那么V2版本是最新的(或更小) 因为V2 < V1

因为有‘.’,所以我们不能拿出来就直接比较,但是我们可以比较它们的数字部分,然后看看哪个版本是最新的。下面代码的实现方法是遍历这个字符串,分割数字部分并进行比较,如果相等,那就再去看下一个数字部分,直到比出不想等的部分,否则的话就标为相同。

下面的代码实现的是比较两个版本号,如果有多个版本号的话,下面的方法可以用于版本号排序的比较方法,然后就能把所有的版本号都排个序。

//  C/C++ program to compare two version number#include 
using namespace std;// Method to compare two versions. Returns 1 if v2 is// smaller, -1 if v1 is smaller, 0 if equalint versionCompare(string v1, string v2){ // vnum stores each numeric part of version int vnum1 = 0, vnum2 = 0; // loop untill both string are processed for (int i=0,j=0; (i
vnum2) return 1; if (vnum2 > vnum1) return -1; // if equal, reset variables and go for next numeric // part vnum1 = vnum2 = 0; i++; j++; } return 0;}// Driver method to check above comparison functionint main(){ string version1 = "1.0.3"; string version2 = "1.0.7"; if (versionCompare(version1, version2) < 0) cout << version1 << " is smaller\n"; else if (versionCompare(version1, version2) > 0) cout << version2 << " is smaller\n"; else cout << "Both version are equal\n"; return 0;}

输出:

1.0.3 is smaller

转载地址:http://owhii.baihongyu.com/

你可能感兴趣的文章
Node.js-模块和包
查看>>
NodeJS开发指南——mongoDB、Session
查看>>
Express: Can’t set headers after they are sent.
查看>>
2017年,这一次我们不聊技术
查看>>
实现接口创建线程
查看>>
HTML5的表单验证实例
查看>>
程序设计方法概述:从面相对象到面向功能到面向对象
查看>>
JavaScript基础1:JavaScript 错误 - Throw、Try 和 Catch
查看>>
SQL基础总结——20150730
查看>>
SQL join
查看>>
JavaScript实现页面无刷新让时间走动
查看>>
CSS实例:Tab选项卡效果
查看>>
前端设计之特效表单
查看>>
前端设计之CSS布局:上中下三栏自适应高度CSS布局
查看>>
Java的时间操作玩法实例若干
查看>>
JavaScript:时间日期格式验证大全
查看>>
时间日期:获取两个日期相差几天
查看>>
责任链模式 Chain of Responsibility
查看>>
高并发与大数据解决方案概述
查看>>
解决SimpleDateFormat线程安全问题NumberFormatException: multiple points
查看>>