雜湊表究其實質而言就是一種資料結構,可以隨機訪問,沒有上限,但是不同之處則在於陣列呢,是根據陣列來確定所要求的資料在陣列中的偏移量,而雜湊則是以名字來進行檢
索,或者說作為索引值的,也就是說檢索用的鍵不是數字,而是保證唯一性的字串,即鍵值,鍵值必須保持唯一性!!
需要指出的是,雖然雜湊表的鍵的名稱要求必須唯一,但是對於鍵的值,則是可以相同的。
$family_name="john";
$family_name="rubble";
foreach $person(qw< fred barney >)
."\n";
}這樣就可以隨著使用而定義,開始的時候我在想這樣是不是就跟c++中的結構體類似?但是之後想了想發現,結構體必須在使用之前定義,遠沒有雜湊這樣靈活,雜湊成員的訪問
使用{},不同於陣列的,
也可以動態的建立雜湊元素
$family_name="test";極富靈活性!!!
對於雜湊表中某個元素的訪問類似於陣列,首先是雜湊表名稱,不過其索引應該使用花括號,然後陣列下標被字串代替。
$tmp=$family_name;
對於雜湊中沒有的元素會使用undef最為返回值代替
使用胖箭頭的方式定義雜湊列表
%last_time=(
"fred"=>"hehe",
"dino"=>undef,
"barney"=>"rubble",
"betty"=>"rubble",);#整個列表以乙個額外的逗號結束
foreach (qw)
."\n";
}這裡要注意的是,在使用胖箭頭方式定義雜湊表的時候,應該使用小括號,並不像單個定義雜湊元素時使用大括號的方式
my %hash=("a"=>1,"b"=>2,"c"=>3);
my @k=keys %hash;
#獲得hash表的鍵名稱
foreach(0..(@k-1))
#獲得雜湊表的值
my @m=values %hash;
foreach (0..(@m-1))
exist函式
my %hight=(
"li"=>3,
"zhang"=>5,
"mi"=>5,
);if(exists $hight)#exists函式只是檢查該雜湊表中是否有鍵名是"li",與鍵值無關;}
delete函式
my %hight=(
"li"=>3,
"zhang"=>5,
"mi"=>5,
);if(exists $hight)
;#說明已經不存在該鍵名是li的鍵
}
雜湊函式的遍歷
my %hight=(
"li"=>3,
"zhang"=>5,
"mi"=>5,
);foreach(@k=keys %hight)
."\n";
}
perl 中的雜湊賦值
在perl 中,通過 動態的給雜湊賦值,是最常見的應用場景,但是有些情況下,我們事先知道一些資訊,當需要把這些資訊存放進乙個雜湊的時候,直接給雜湊賦值就好 雜湊的key不用說,就是乙個字串,關鍵是value,大概有下面3種 1 乙個值 就是乙個普通的一維雜湊,直接賦值即可 示例 my hash a ...
雜湊表(雜湊表)的基本操作
首先要說的是 雜湊表又叫雜湊表 雜湊只是英文hash的音譯,雜湊才是標準的翻譯 好吧,下面是源 如果有錯誤,請見諒!head.h include using namespace std 雜湊表又叫 雜湊表 其實音譯才叫做雜湊 typedef int keytype 元素型別定義 typedef st...
Perl中陣列和雜湊表的用法小結(ZZ)
1 二維陣列 a b 1 2 3 c 4 5 6 a 0 b a 1 c 1 print a 0 0 n print a 1 0 n print a 0 0 n print a 1 0 n 2 foreach 2 n will print value of b 2 and c 2 print n w...