私はこのトピック(配列)で私の意見ではあまり明確ではない、C++のStroustrupの本を勉強しています。ベクトルダイナミックとスタティックの配列
std::vector<int> a;
a.push_back(10);
a.push_back(487);
a.push_back(-22);
と呼ばれている
int test[3] = {10,487,-22};
のように宣言されている
静的配列動的配列:私はC++が(デルファイのような)アレイの2種類があります理解しているものから、私はすでにこれについての回答を見てきましたが(そこにはたくさんの行と概念がありました)、彼らは私にその概念を明確にしませんでした。私はvector
のを理解しているものから
は、より多くのメモリを消費しますが、彼らは(実際には、動的に)そのサイズを変更することができます。代わりに、配列はコンパイル時に与えられる固定サイズを持ちます。
Stroustrupの章では、配列が存在しない間はベクタが安全である理由を説明していないと述べています。私は彼を本当に信じますが、なぜですか?安全の理由は記憶の場所に関連しているのでしょうか? (ヒープ/スタック)
なぜ安全であればベクターを使用しているのですか?
これは、std :: vector、配列、およびポインタを使用してメリットと落とし穴について質問する場合、非常に幅広い議論です。 –
私のコードでは、古いバージョンでそれらを使用した人が見つかった場合にのみ、常にベクトルと配列を使用します。しかし、私はなぜ –
std :: vectorが以前に配列で解決されたほとんどのタスクを引き継いだ、よく磨かれたマシンであるかを知りたいと思います。 std :: vectorがどのように設計されているのか、その理由を調べたいと思うでしょう。これには、リソース管理(3/5のルール)とアルゴリズム的な振る舞いが含まれます。 –