在c++中實現變長陣列
1.變長一維陣列
這裡說的變長陣列是指在編譯時不能確定陣列長度,程式在執行時需要
動態分配記憶體空間的陣列。實現變長陣列最簡單的是變長一維陣列,你可以這樣做:
//檔名: array01.cpp
#include
using namespace std;
int main()
注意int *p=new int[len];這一句,你不能這樣做:
int p[len];
c++編譯器會報錯說len的大小不能確定,因為用這種形式宣告陣列,陣列的大小需要在編譯時確定。而且這樣也不行:
int p=new int[len];
編譯器會說不能把int*型轉化為int型,因為用new開闢了一段記憶體空間後會返回這段記憶體的首位址,所以要把這個位址賦給乙個指標,所以要用int *p=new int[len];
array01.cpp實現了乙個變長的一維陣列,但是要養成乙個好習慣,就是注意要登出指標p,使程式釋放用new開闢的記憶體空間。
當然使用c++標準模版庫(stl)中的vector(向量)也可以實現變長陣列:
//檔名: array02.cpp
#include
#include
using namespace std;
int main()
cout<}
return 0;
}
執行結果:
input value for m,n,l:2 3 4
0: 00492fe0 1: 00492fe4 2: 00492fe8 3: 00492fec
1: 00492fa0 2: 00492fa4 3: 00492fa8 4: 00492fac
2: 00492f60 3: 00492f64 4: 00492f68 5: 00492f6c
1: 00492ec0 2: 00492ec4 3: 00492ec8 4: 00492ecc
2: 00492e80 3: 00492e84 4: 00492e88 5: 00492e8c
3: 00492e40 4: 00492e44 5: 00492e48 6: 00492e4c
不知道如何提筆。
奔三的人了,雖然心態還不算老,但事實是殘酷的。今天的路何去何從。我真的看不太清。自己看好的方向卻很難找到機會。迫於生活的壓力只能將就了乙個比較接近的。但我就一普通人,看不清未來。現在就是堅定信念,在現在的領域努力。我相信,只要付出比別人多的努力,那麼機會就會光顧我的。堅信。總結下這個禮拜的學習內容。...
我不知道的C 概念
接觸c 已有兩三個年頭,但好像一直都在其邊緣逗留,今天準備學習一下boost庫,看到學習庫的首要條件便是要知道 raii,函式物件和謂詞。但這幾個概念,我都覺得很新鮮!raii 資源獲取就是初始化,為了便於記憶,暫時把它理解為,把資源做為類的成員,在類的建構函式中做初始化,在析構函式中釋放資源,這樣...
C 我不知道的事
1.命名空間是起什麼作用的?和程式集之間的關係 乙個程式集可以有多個命名空間。2.靜態類是幹什麼的?靜態類也只是把邏輯相關的一些靜態函式組織在一起,除此之外沒有其他功能。功能限制就是只能包含靜態成員。3.抽象函式和介面到底選哪個?相同點 都不能直接例項化。都是抽象的概念,設計模式的精髓就是面向抽象程...