資料結構中的異構陣列
眾所周知,陣列根據定義是同構的。因此,我們必須將相同型別的資料放入陣列中。但是,如果我們想要儲存不同型別的資料,那麼有什麼技巧呢?在像C語言這樣的舊語言中,我們可以使用聯合體來人工地將不同型別合併成一種型別。然後,我們可以在此新型別上定義一個數組。這裡,陣列元素實際包含的物件型別由一個標記決定。讓我們來看一個這樣的結構:
struct Vehicle{
int id;
union {
Bus b;
Bike c;
Car d;
}
};然後,程式設計師必須建立一個關於如何使用id標記的約定。例如,假設當id為0時,表示表示的車輛實際上是一輛公共汽車等。聯合體為公共汽車、腳踏車和汽車中最大的型別分配記憶體。如果物件的大小差異很大,這會浪費記憶體。
在面向物件的語言中,我們可以使用繼承的概念。假設我們有一個名為Vehicle的類,所有其他型別如Bus、Bike和Car都是它的子類。因此,如果我們為Vehicle定義一個數組,那麼它也可以容納所有它的子類。這將幫助我們在一 個數組中儲存多種型別的資料。
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP