我想創建一個數組來存儲實際對象,而不是指向C++中的對象的指針?創建實際對象數組C++
有人可以解釋我該怎麼做?是它更好地使用載體,或直接,如:
Student s [10];
OR
Student s [10][];
我想創建一個數組來存儲實際對象,而不是指向C++中的對象的指針?創建實際對象數組C++
有人可以解釋我該怎麼做?是它更好地使用載體,或直接,如:
Student s [10];
OR
Student s [10][];
使用:
Student s [10];
創建10個Student
實例的數組。
我認爲Student s [10][];
是無效的。
但是對於C++我不會使用C類型的數組,所以最好使用像std::vector
或C++ 0x std::array
這樣的類,這些類可能不適用於最新的標準庫/編譯器。
對於上面的例子有std::vector
#include <vector>
...
std::vector<Student> students(10);
而且具有std::array
:
#include <array>
...
std::array<Student, 10> students;
謝謝你,我想接受你的完整答案,但它不允許我這樣做:(( – 2012-03-20 13:26:52
沒問題,至少我可以幫助:) – Constantinius 2012-03-20 13:27:30
一個問: 如何定義頭文件中的矢量大小?如何重新定義它,然後在cc文件中? – 2012-03-20 13:27:33
不要使用數組。數組是C而不是C++。改爲使用std::vector
,這是C++處理此問題的方法。
你能告訴我一種使用Vectors來存儲真實對象的方法嗎?謝謝 – 2012-03-20 13:18:00
@shaklasah:矢量總是存儲實際的物體,除非你特意告訴他們。 – 2012-08-02 16:49:57
我會建議使用的std ::載體,如果你想使你的陣列可擴展的,否則只是使用學生[10];爲10個對象。
第二個是否編譯? – pezcode 2012-03-20 13:17:13
不,第二個不編譯。 C++中只有少數幾個地方的'[]'是有效的語法。 – 2012-08-02 16:48:17