重複の可能性:
C++ char* と std::string の比較
std::string の代わりに char* を使用する利点はありますか?
char* は通常、スタック上で定義されているので、使用するメモリの量が正確にわかっています。または、あらゆる点で std::string の方が優れていますか?
重複の可能性:
C++ char* と std::string の比較
std::string の代わりに char* を使用する利点はありますか?
char* は通常、スタック上で定義されているので、使用するメモリの量が正確にわかっています。または、あらゆる点で std::string の方が優れていますか?
C++ で書いている場合は、遭遇するほとんどの場合、std::string の方が優れています。代わりに、char* を使用したい場合がいくつかあります: -
古い C コードとの互換性 (ただし、std::string の c_str() メソッドがこのほとんどを処理します)
- メモリを節約するため (std::string にはおそらくもっと多くのオーバーヘッド)
- ネットワーク コードや共有メモリなど、メモリの場所を確認したい場合
C++ std::string のみを扱う場合、ほぼすべての点で優れています。私がまだC文字列を使用している唯一のケースは
明らかに、すべての規則には例外があります。たとえば、多くのテキスト解析を行っている場合は、バッファへの生のポインタを使用する方が効率的ですが、一般的な文字列をいじる場合は std::string が推奨されます。