所以有幾種方法可以完成你想要做的事情。有些是C風格,有些使用C++ STL容器我用4種不同的方式重寫了代碼,以顯示不同之處。有c靜態大小的數組和C++靜態大小的類(在編譯時必須知道大小),c動態大小的數組(這些將分配在堆上,C++動態大小的向量)。一些基本的例子。
#include <iostream>
#include <vector>
#include <array>
using namespace std;
int main() {
// C style Static sized array
int arr_sty_1[6];
for(int x=0; x<6; x++)
arr_sty_1[x] = x;
for(int y=0; y<6; ++y)
cout<< "arr_sty_1[" << y <<"] = " << arr_sty_1[y] << endl;
// C++ style Static sized array
array<int, 6> arr_sty_2;
for(int x=0; x<6; x++)
arr_sty_2[x] = x;
for(int y=0; y<6; ++y)
cout<< "arr_sty_2[" << y <<"] = " << arr_sty_2[y] << endl;
// C style dynamic sized array
int* arr_sty_3 = new int[6];
for(int x=0; x<6; x++)
arr_sty_3[x] = x;
for(int y=0; y<6; ++y)
cout<< "arr_sty_3[" << y <<"] = " << arr_sty_3[y] << endl;
// C++ style dynamic size vector (dynamic array ish)
vector<int> arr_sty_4;
for(int x=0; x<6; x++)
arr_sty_4.push_back(x);
for(int y=0; y<6; ++y)
cout<< "arr_sty_4[" << y <<"] = " << arr_sty_4[y] << endl;
return 0;
}
你讀過陣列上的主題++教材? –
你聲明數組只有1元,然後你試圖寫一個值到它一個基本的C是6'th元素它顯然不起作用 – litelite
'arr'是自動分配的,大小爲0,它不是動態的。在你的例子中,數組的大小需要知道,所以你可以寫'int arr [6];'。你最終會遇到這樣一種情況:在運行前你不一定知道數組的大小,你可以看看'std: :VECTOR'。 – George