私は下のC++コードを同等のC#関数に変換するのに苦労しています。私はC++の経験がないことを認めなければなりません。私は本当にこの変換のいくつかの助けに感謝します。unordered_mapのC#構文
。具体的には:
私はunordered_mapは、宣言に渡される
strings((max_code * 11)/10)
の等価いただきました!C#での辞書であるが、ことを理解できますか?INPUT &input, OUTPUT &output
のC#での対応はなんですか?私はバイト配列をこの関数に渡し、バイト配列を返す必要があります。
おかげで...
void decompress(INPUT &input, OUTPUT &output, const unsigned int max_code = 32767 )
{
input_code_stream<INPUT> in(input, max_code);
output_symbol_stream<OUTPUT> out(output);
std::unordered_map<unsigned int,std::string> strings((max_code * 11)/10);
for (int unsigned i = 0 ; i < 256 ; i++)
strings[i] = std::string(1,i);
std::string previous_string;
unsigned int code;
unsigned int next_code = 257;
while (in >> code) {
if (strings.find(code) == strings.end())
strings[ code ] = previous_string + previous_string[0];
out << strings[code];
if (previous_string.size() && next_code <= max_code)
strings[next_code++] = previous_string + strings[code][0];
previous_string = strings[code];
}
}
SOはコンバージョンサービスではありませんので、問題が発生している問題の1つまたは2つに絞り込んで、それらについて特定の質問をしてください。 – BradleyDotNET
SOは実際に私のコードを書くためのサービスではありません。あなたの問題が直ちに解決された後でも、質問は他の人に何らかの役に立つことが想定されています。単に*非常に特殊な関数の変換を求める質問は、そのレベルまで上がる可能性は低いです。私は、より具体的な質問を試してみることをお勧めします。 – paxdiablo
申し訳ありません - 投稿を編集しました。 – user3363391