// 版本号拆分为数组

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;

}

c++ 软件版本比较函数的更多相关文章

  1. [No000099]软件版本命名规范

    软件版本阶段说明 Base: 此版本表示该软件仅仅是一个假页面链接,通常包括所有的功能和页面布局,但是页面中的功能都没有做完整的实现,只是做为整体网站的一个基础架构. Alpha: 此版本表示该软件在 ...

  2. 【转】Ubuntu下查看软件版本及安装位置

    查看软件版本:aptitude show xxx 也可用apt-show-versions (要先安装sudo apt-get install apt-show-versions) 查看软件安装位置: ...

  3. UBUNTU查看软件版本

    1.查看已安装软件版本aptitude show softwarename 2.查看软件安装目录dpkg -L softwarename

  4. centos/linux alternatives与update-alternatives详解与软件版本切换

    update-alternatives是linux系统中专门维护系统命令链接符的工具,通过它可以很方便的设置系统默认使用哪个命令.哪个软件版本,比如,我们在系统中同时安装了open jdk和sun j ...

  5. 在Ubuntu中通过update-alternatives切换软件版本

    update-alternatives是ubuntu系统中专门维护系统命令链接符的工具,通过它可以很方便的设置系统默认使用哪个命令.哪个软件版本,比如,我们在系统中同时安装了open jdk和sun ...

  6. Ubuntu下查看软件版本及安装位置【转】

    Ubuntu下查看软件版本及安装位置 查看软件版本:     aptitude show xxx 也可用apt-show-versions (要先安装sudo apt-get install apt- ...

  7. ubuntu下升级特定软件与查看软件版本信息

    ubuntu 升级软件: sudo apt-get update 更新源 sudo apt-get upgrade 更新已安装的包 sudo apt-get dist-upgrade 升级系统 ubu ...

  8. CentOS6安装各种大数据软件 第一章:各个软件版本介绍

    相关文章链接 CentOS6安装各种大数据软件 第一章:各个软件版本介绍 CentOS6安装各种大数据软件 第二章:Linux各个软件启动命令 CentOS6安装各种大数据软件 第三章:Linux基础 ...

  9. Ubuntu下查看软件版本及安装位置

    查看软件版本: XXX --version 或 aptitude show xxx 也可用apt-show-versions (要先安装sudo apt-get install apt-show-ve ...

随机推荐

  1. Codeforces 769D k-Интересные пары чисел

    题目链接:http://codeforces.com/contest/769/problem/D 搜索题 考虑这些数的值域较小,直接${O(2^{k})}$次方枚举每个数字二进制位上是否改变,剪枝一下 ...

  2. Qt5文件操作_保存成"UTF-8"格式

    1. bool TdrawSvg::Save2File(char* _pcFullFileName) { // http://blog.csdn.net/u011314012/article/deta ...

  3. [html]自定义滚动条风格

    webkit: <style type="text/css"> *{ margin: 0; padding: 0; } ::-webkit-scrollbar { wi ...

  4. EF延迟加载和懒加载

    EF默认是延迟加载的 延迟加载就是刚开始只会读取当前实体对应表的数据 关联表的数据不会读取 只有下面条件用到了才会再去读取 所以可能会造成N次读取数据库  需要在实体的属性加virtual关键字 延迟 ...

  5. 如何选择合适的 DDoS 防御服务

    如果你没有对自己的站点采取一些必要的保护措施,将会使它直接暴露于 DDoS 攻击的风险下且无任何招架之力.你应该对法国大选日 knocked out 网站被 DDoS 攻击和 2016 年十月份时候美 ...

  6. asdasda

    git://git.coding.net/lick468/wf.git git地址:https://git.coding.net/lick468/wf.git

  7. nodejs + ts 配置

    参考:https://github.com/nestjs/typescript-starter 和 How to get auto restart and breakpoint support wit ...

  8. HTML标记 2 ——表格

    <table width="800" border="0">     -----------------------表开头 <tr>   ...

  9. xlua怎么样hotfix C#中的重写方法???

    问题的来源之这样的: 线上项目遇到一个问题,就是子类 override 了父类的一个 virtual 方法,并且调用到了父类里面的 virtual 方法.现在子类  override 的方法里有一些错 ...

  10. java开学第一周测试自我感想

    开学第一周,王建民老师就对我们进行了java测试,对我们说测试题目是基于期末考试的基础难度来出的.我们的考试完全是靠暑假在家自学的基础,如果在家没有自学java,那完全就是看不懂试卷到底要考什么.由于 ...