は当初私は、ユーザー入力進数(0から15)を有し、そしてIは二進数にそれを向けるだろう。 図に示すように、これらの番号がテキストファイルに書き込まれているとします。これらの数字は、1の数で並べられています。ダッシュは1の異なるグループを区切るために使用されます。
私はこのファイルを読んで、1つのグループの文字列をグループのすべての文字列、つまりグループ1とグループ2のすべての文字列と比較しなければなりませんグループ2 - グループ3
0/1差の1つの列のみが許可され、その列は文字tで置き換えられます。複数の列に差がある場合は、noneを書きます。 グループ2、0001、グループ3、0011と言うと、2番目の列だけが異なります。ただし、0010と0101は2列の差分です。
結果を別のファイルに書き込まれます.....瞬間
、私はこれらの文字列を読んでいたとき、私はベクトル文字列を使用しています。私はビットセットを見つけました。重要なのは、キャラクタに一度に1つずつアクセスしなければならないということです。つまり、ベクトルの文字列をベクターの文字に分割していることを意味します。しかし、より簡単な方法があるようです。
私はさらにハッシュテーブルリンクリストを考えました。グループ1をH [0]に割り当てる。各比較は、H [current_group + 1]でH [current-group]として実行されます。しかし、最初の比較(1と0の比較)以外にも、このハッシュ連動の仕方では比較できません。だから私はそれをあきらめました。
#include <iostream>
#include <fstream>
#include <vector>
#include <string>
#include <algorithm>
#include <iterator>
using namespace std;
int main() {
ifstream inFile("a.txt");
vector<string> svec;
copy(istream_iterator<string>(inFile), istream_iterator<string>(), back_inserter(svec));
copy(svec.begin(), svec.end(), ostream_iterator<string>(cout,"\n"));
for(int i = 0; i < svec.size(); i++)
{
cout << svec[i] << " ";
}
inFile.close();
return 0;
}
すべてのヘルプは高く評価されて....これは、ファイルに書き込むのサンプルコードです....しかし、私が言ったように、ベクトルの全体の契約は、私の場合は非現実的と思われます。おかげ
「宿題」と非常によく似ています。ヒント:ビット単位の操作、特にXORが役立ちます。 – mjv
はい私はそれについても考えました。実際、それは私の心の中で最初に起こったことでした。問題はストレージです。リマインダーのおかげで、私は戻って追加しました。 – CppLearner
あまりよく知られていませんが、ビット単位で増分しました。 – CppLearner