std :: vector <>またはstd :: stringを使用する場合は、ヒープにも割り当てる必要があります。例:内部メモリが既にヒープに割り当てられている場合、オブジェクトのメモリをヒープに割り当てる必要がありますか?
int main() {
std::vector<int>* p = new std::vector<int>();
delete p;
}
JavaおよびC#では、オブジェクトは常にこの構文を使用してヒープで割り当てられます。 C++で同じことをするのは効率的なのでしょうか?なぜなら、C++でクラスを作成するたびに、私はスタック変数とヒープ変数を合わせて使用するからです。たとえば、次のようにします。
class simple {
int a;
double b;
std::string c;
std::vector<int> d;
....
};
C++でオブジェクトを使用する場合、私はベストプラクティスを実行する必要がありますか?
- すべてのデータはヒープに配置する必要がありますか?
- すべてのデータが混在する可能性がありますか?
- か...
おかげで、
チャン
実際には、オブジェクトは必ずC#でその構文を使用してヒープ上にあるわけではありません。値型の場合は、スタックに移動します。 –