それはconst char * + lengthからconst std :: stringを作るのは安いですか?
const std::string s(my_const_char_ptr, my_length);
を実行するためにどのように高価なのですか?コピーが含まれていますか?そうでない場合は、標準的な標準ライブラリの実装から何命令を受け取ることができますか?パフォーマンスクリティカルなコードでこれを行うには十分ですか?
... GSL実装を取得して、string_view
を使用する必要がありますか?
freestoreからメモリを割り当てるsomewhですほぼすべてのC++実装では高価です。それ以外に、あなたの質問はとてもあいまいで、おそらくあなたが期待できる最も正確な答えは次のとおりです。 – IInspectable
はい、コピーがあります。そして、このような操作がどれだけ多くの「命令」で使用されるかを単に表現する方法はありません。あなたは単にあなたのコードを分解して見る必要があります。 –
コンストラクタは(my_lengthが十分に小さく、実装が小さな文字列の最適化を実行しない限り)ヒープ割り当てを行い、文字データをコピーします。 –