J'ai du mal à convertir le code C++ ci-dessous en une fonction C# équivalente, et je dois admettre que je n'ai aucune expérience avec C++. J'apprécierais vraiment de l'aide dans cette conversion.Syntaxe C# pour unordered_map
Pour être précis:
Je comprends que unordered_map est un dictionnaire en C#, mais ce qui est l'équivalent pour
strings((max_code * 11)/10)
qui est passé dans la déclaration?Quel est l'équivalent pour
INPUT &input, OUTPUT &output
en C#? - Je veux passer un tableau d'octets à cette fonction et retourner un tableau d'octets.
... Merci
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 n'est pas un service de conversion, s'il vous plaît affiner la question à une ou deux choses que vous rencontrez un problème et poser une question spécifique à leur sujet. – BradleyDotNET
SO n'est pas vraiment destiné à être un service d'écriture de code pour moi, les questions sont censées avoir un certain usage pour d'autres personnes même après que votre problème immédiat a été résolu. Une question qui cherche simplement la conversion d'une fonction * très * spécifique est peu susceptible d'atteindre ce niveau. Je suggérerais d'essayer et de venir avec des questions plus précises. – paxdiablo
Excuses - J'ai édité mon message. – user3363391