【问题标题】:Diff function on two arrays, in c++/mfc/stl?c++/mfc/stl中两个数组的差异函数?
【发布时间】:2010-08-11 00:04:38
【问题描述】:
Diff function on two arrays (or how to turn Old into New) 

Example
One[]={2,3,4,5,6,7}
Two[]={1,2,3,5,5,5,9}

Example Result
Diff: insert 1 into One[0], One[]={1,2,3,4,5,6,7}
Diff: delete 4 from One[3], One[]={1,2,3,5,6,7}
Diff: modify 6 into 5 in One[4], One[]={1,2,3,5,5,7}
Diff: modify 7 into 5 in One[5], One[]={1,2,3,5,5,5}
Diff: append 9 into One[6], One[]={1,2,3,5,5,5,9}

Need code in c++/mfc/stl/c, Thanks.

【问题讨论】:

  • 如果你可以重新分配复制的东西,你为什么要这样 - 它通常会更快。这里的高级图片是什么?
  • 这是一个概述数据库表智能更新的简化示例。我有几个数组要放入一个表中;我有原始数组和新数组,需要通过仅删除需要删除的行和添加需要插入和更改已经存在的行的行来更新数据库...

标签: c++ arrays mfc stl diff


【解决方案1】:

您需要的是一个字符串匹配算法,通常使用动态编程实现(参见here)。

我强烈建议使用执行差异的库而不是自己实现它。

【讨论】:

    【解决方案2】:

    虽然它通常使用字母而不是整数来完成,但计算 Levenstein 距离的常用算法在这里应该和它通常应用的地方一样有效。

    【讨论】:

      【解决方案3】:

      我是 C++ 差异库开发人员。

      http://code.google.com/p/dtl-cpp/

      使用我的差异库,可以计算两个序列之间的差异。

      如何使用请查看examples/intdiff.cpp。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-05-26
        • 1970-01-01
        • 2011-01-19
        • 1970-01-01
        • 1970-01-01
        • 2020-11-24
        • 1970-01-01
        • 2016-02-09
        相关资源
        最近更新 更多