首先是一個鏈表庫構建?
那麼,沒有。鏈表是一個數據結構。標準庫在std::list
和std::forward_list
中有兩個不同的實現。
程序員需要創建一個節點類
從上面的例子中,似乎你的教授要你。
我不也知道什麼是 「類型定義」 的意思。
typedef
是關鍵字。其目的是爲現有類型指定替代名稱。因此,例如打電話double
使用其他名稱(比方說x
),你會喜歡的東西去以下:
typedef double x
現在你就可以宣佈:
x name = 13.2
將被翻譯成:
double name = 13.2
我知道指針是什麼。
指針是一種數據類型,其值可以是特定存儲空間的地址。在C++中獲取特定分配變量的地址,您可以使用&x
,其中x
是分配的變量。打印&a
將以0x...
的形式打印存儲器地址。如果聲明類型爲T*
的變量,則可以使該變量包含一個相同類型變量的內存地址T
。指針前面的*
符號意味着指示指針,這意味着獲取它指向的內存空間值。
int x = 10
int* y = &x
std::cout << (*y);
在上例中輸出爲10
。
我將不勝感激,如果有人可以什麼在解釋一點點。
鏈表,在其最簡單的形式,可以等實現以下內容:
struct node {
node(x, y = 0) : field(x), next(y) {}
int field;
node* next;
};
鏈表供應具有動態容器與儘可能多的細胞,因爲它的目的確切需要。其背後的想法是,主node
結構應該包含一個成員變量field
,它將存儲一個特定的值和一個指向下一個node
,將包含另一個值等的指針。
圖形表示可以是以下:
[ a:10 ] ---> [ b:3 ] ---> [ c:7 ]
在上述例子中的節點的結構將是:
node c = node(7, 0);
node b = node(3, &c);
node a = node(10, &b);
其中0
裝置空指針,並且是指一個特殊值「沒有指向」。
至於typedef:它基本上爲所提到的數據類型分配一個不同的名稱。就像:#define superInt __int64 – 2013-04-20 17:48:08
是的,標準庫包含一個單獨和一個雙向鏈表,分別稱爲'std :: forward_list'和'std :: list'。爲了理解'typedef',繼續參加你的課程? – 2013-04-20 17:48:22
@KerrekSB非常棒的建議你.... – user2171775 2013-04-20 17:55:18