假設我們要為Graph建立一個類。該類儲存圖的鄰接矩陣表示。
因此,我們的分類結構如下所示。
class Graph {
int V;
int adj[V][V];
};
int main() {
}
即使我們將V設為靜態,也會出現錯誤“陣列邊界不是整數常量”
C ++不允許在大小不恆定的型別中建立堆疊分配的陣列。因此,我們需要動態分配記憶體。下面是一個簡單的程式,用於顯示如何使用帶有鄰接矩陣表示形式的Graph類在C ++類中動態分配2D陣列。
輸出:
0 1 1 0
0 0 1 0
1 0 0 1
0 0 0 1
關於呼叫memset()的註釋:
memset()單獨用於單獨的行。我們不能用一個呼叫替換這些呼叫,因為行被分配在不同的地址,並且像下面這樣進行memset呼叫將是災難性的。
memset(adj,false,V * V * sizeof(bool));
錯誤!(矩陣在不同地址處的行)
本期的知識分享就到這裡了,希望對大家有幫助~
另外如果你想更好地提升你的程式設計能力,學好C語言C++程式設計!彎道超車,快人一步!筆者覺得這裡或許可以幫到你~
程式設計學習書籍分享:
程式設計學習影片分享:
分享(原始碼、專案實戰影片、專案筆記,基礎入門教程)
最新評論