任意のコンテナに対してdiffをとれるようにテンプレートにしました。 ポイントはテンプレートになっているのが、diffの入り口Diff::ond関数だけというところです。このためdiffを求めるプログラムの大半をバイナリとしてライブラリ化することもできます。またオブジェクトの内部に記憶しているのは操作の手順のみなので、stringでもvectorでも、おなじオブジェクトでdiffをとることができます。 実行例。 $ cat hello_c++.txt Hello C++! $ cat hello_diff.txt Hello diff! $ ./my_diff3_2 hello_c++.txt hello_diff.txt FILE NAME: 7 h e l l o _ - c - + - + + d + i + f + f . t x t CONTENTS: 2 Hello - C++