std::string in char-array wandeln



  • Nixkopf schrieb:

    Achso, ich dachte, das geht etwas mehr "rein C++".

    'copy' ist *absolut* "rein C++". Daher habe ich ja auch extra *nicht* 'strcpy' verwendet.



  • Oki, super.

    MfG



  • Aber wenn szTip ein CHAR[64], dann gib ihm auch nur 64 Zeichen:

    if (str.size () < 64)
        std::copy (str.begin (), str.end (), icondata.szTip);
    else
    {
        std::copy_n (str.begin (), 63, icondata.szTip);
        icondata.szTip[63] = '\0';
    }
    

    oder so ähnlich.



  • std::copy ist für sowas aber nicht gerade der effiziente Weg. Bei built-ins ist man mit einem std::mempcy besser dran.



  • Wird eh mit ner fixen Länge unter 64 beschrieben, daher unnötig.

    MfG


  • Mod

    lolz schrieb:

    std::copy ist für sowas aber nicht gerade der effiziente Weg. Bei built-ins ist man mit einem std::mempcy besser dran.

    Das hängt von vielen Faktoren - nicht zuletzt der Implementation von std::copy (die ohne weiteres memcpy benutzten kann) ab. Zudem ist die reine Laufzeitfrage - wenn du darauf abstellen willst - oft genug gar nicht das wesentliche Kriterium.



  • Nixkopf schrieb:

    Wird eh mit ner fixen Länge unter 64 beschrieben, daher unnötig.

    Sagte der Frosch und sprang in den Mixer ;).



  • camper schrieb:

    lolz schrieb:

    std::copy ist für sowas aber nicht gerade der effiziente Weg. Bei built-ins ist man mit einem std::mempcy besser dran.

    Das hängt von vielen Faktoren - nicht zuletzt der Implementation von std::copy (die ohne weiteres memcpy benutzten kann) ab. Zudem ist die reine Laufzeitfrage - wenn du darauf abstellen willst - oft genug gar nicht das wesentliche Kriterium.

    Mir ist das schon klar, aber man sollte andere darauf hinweisen.



  • Ich denke nicht, dass die Homepageadresse meiner Gemeinschaft jemals aus über 64 Zeichen bestehen wird, zumal sich der Name sowieso niemals ändern wird.

    MfG


  • Mod

    lolz schrieb:

    camper schrieb:

    lolz schrieb:

    std::copy ist für sowas aber nicht gerade der effiziente Weg. Bei built-ins ist man mit einem std::mempcy besser dran.

    Das hängt von vielen Faktoren - nicht zuletzt der Implementation von std::copy (die ohne weiteres memcpy benutzten kann) ab. Zudem ist die reine Laufzeitfrage - wenn du darauf abstellen willst - oft genug gar nicht das wesentliche Kriterium.

    Mir ist das schon klar, aber man sollte andere darauf hinweisen.

    worauf und warum?


Anmelden zum Antworten