c++ 软件版本比较函数
// 版本号拆分为数组
void splitToInt(string str , vector<int> *v1, char delim )
{
// 拆分
string strTmp;
strTmp = "";
int num = 0;
for (int i = 0;i< str.size();i++)
{
if (str[i] == '.')
{
num = atoi(strTmp.c_str());
v1->push_back(num);
strTmp = "";
}else
{
strTmp += str[i];
}
}
num = atoi(strTmp.c_str());
v1->push_back(num);
}
// 比较字符串版本
int compareVersion(string str1, string str2)
{
vector <int> v1;
vector <int> v2;
splitToInt(str1,&v1);
splitToInt(str2,&v2);
// 比较
int sizeV1 = v1.size();
int sizeV2 = v2.size();
//if(sizeV1>sizeV2) return 1;
//if(sizeV1<sizeV2) return -1;
int sizeV = sizeV1>sizeV2?sizeV2:sizeV1;
for( int i=0; i<sizeV; i++)
{
if(v1[i]>v2[i]) return 1;
if(v1[i]<v2[i]) return -1;
}
return 0;
}
最新文章
- Distributed Databases and Data Mining: Class timetable
- VS2015 Xamarin for iOS
- coreseek实战(二):windows下mysql数据源部分配置说明
- iOS 时间戳
- Mysql---DML 语句与DCL语句
- 如何将SQL Server 2008库导入2000中
- javascript一些有用但又不常用的特性
- [PWA] Keynote: Progressive Web Apps across all frameworks
- 基于Networks of Brokers的HA方案
- oracle 开发笔记“跨数据库查询复制”
- 浅谈http请求数据分析
- mysql 触发器学习
- .Net Core下 Redis的String Hash List Set和Sorted Set的例子
- Template基础
- Android之使用参数改变ProgressDialog的位置、大小、背景透明度、屏幕透明度
- AppBoxFuture(五): 分布式文件存储-Store Everything
- MySQL错误码
- source-insight 常用操作
- 初学Python——集合及其运算
- C#概念总结(一)
热门文章
- SQL server2008安装与管理
- Java中有多个异常, 如何确定捕获顺序(多个catch),先从上到下执行,判断异常的大小,如果包含捕到异常,就进入这个catch,后面的就不再执行
- 《剑指offer》第五十六题(数组中唯一只出现一次的数字)
- 《剑指offer》第五十五题(平衡二叉树)
- 加速cin的技巧
- 日常英语---二、注册google的api的key
- C# 连接PDA扫码枪
- 数据结构(C语言版)-第1章 绪论
- English trip V1 - 19.Where Am I? 我在哪里?Teacher:Patrick Key:Ask for and directions
- 分享WCF文件传输---WCFFileTransfer