[英]Meaning of Signed Long Integer
我有以下要求:
創建線性列表函數:CreateList、AddNode、DeleteNode、SearchNode 和 DeleteList,用於保存有符號長整數的列表。
我對這里的 2 個術語感到困惑,這里的有符號長整數的含義是否意味着:
“任何正整數或負整數,包括 0”?
我錯過了什么嗎?
和第二
“線性列表”是指單鏈表還是雙鏈表?
謝謝你
我有以下要求:
創建線性列表函數:
這種措辭對於 C++ 來說已經很奇怪了。 在 C++ 中,處理相同數據的幾個函數通常被分組到一個類中。
CreateList、AddNode、DeleteNode、SearchNode 和 DeleteList,
List
或LinkedList
。List
因為這將是多余的。Node
因為這是這些函數的調用者不必擔心的實現細節。CreateList
函數應該是類的構造函數。 構造函數沒有名字。DeleteList
函數應該是類的析構函數。 析構函數沒有名字。對於包含有符號長整數的列表。
在設計數據類型時,一開始使用單一的具體數據類型會更容易。 稍后該數據類型通常被替換為占位符,以便此列表可用於任何類型,使其成為模板類。 就本練習而言,您的老師很可能指的是單一類型long int
(隱式簽名)。 如果需要,您還可以編寫signed long int
,這是等效的。
“線性列表”是指單鏈表還是雙鏈表?
我們不能告訴你。 這個你得問你的老師。
在慣用的 C++ 中,類型定義的基本結構如下所示,我省略了實現細節:
class LongIntList {
public:
LongIntList(); // This is the constructor
~LongIntList(); // The ~ marks this as the destructor
void Add(long int element);
void Delete(long int element);
bool Search(long int element);
}
在 C++ 標准庫中, Search
函數看起來有點不同(它返回一個迭代器,而不僅僅是一個布爾值),但對於初學者來說,布爾值已經足夠了。 后面會講到迭代器。
綜上所述,您當前的指令將使您編寫結構簡單的代碼,這對學習有好處。 但請注意,生成的代碼不被認為是好的 C++ 代碼。 在介紹了必要的概念之后,您的老師希望您以后可以將當前代碼轉換為好的 C++。 如果在接下來的幾個月內沒有發生這種情況,您可以將您當前的代碼(必須按預期工作)發布到https://codereview.stackexchange.com/ ,讓有經驗的 C++ 程序員告訴您它應該是什么樣子,並且為什么。
“有符號”整數是帶有“符號”位的整數,指示它是負值還是正值。
一個“長”整數,可能比一個長整數,具體取決於架構。 在 32 位上,long 至少是 32 位,大小與 int 相同,在 64 位系統上,long 是 64 位。
您不需要指定 'signed' 因為它是默認值,只需將變量聲明為long
使其成為有符號的 long 變量。 另一方面,如果您只想要一個正值,則需要將其指定為unsigned long
。
對於有符號整數,最大值是無符號整數的最大值的 1/2,因為它從中間拆分。 例如,16 位無符號整數的范圍是 0 到 65535,而有符號 16 位整數的范圍是 -32768 到 32767。
線性列表正是這樣,一個以線性順序排列的列表,它沒有指定您將如何創建它,但是由於函數使用術語“節點”,我認為鏈表適合范式更正確。 請參閱std::list
因為這可能適合您正在做的事情。
這是教學術語,這是翻譯:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.