public
inthashcode()
hash = h;
}return h;
}
原始碼如上。
關於為什麼取31為權
主要是因為31是乙個奇質數,所以31*i=32*i-i=(i<<5)-i,這種位移與減法結合的計算相比一般的運算快很多。
比如:
string ss =
"abc";
string ss1 =
newstring("abc");
string ss2 =
"abc";
system.out.println(ss.
equals(ss1));//true
system.out.println(ss.
equals(ss2));//true
system.out.println(ss == ss1);//false
hashcode值一樣,物件不一定一樣
物件一樣,hashcode值一樣
String 類的實現(3)String類常用函式
1 2 include3 include4 include5 include 6 using namespace std 自己模擬實現的部分相關c string庫函式 8int my strlen const char p 9 17return count 18 19char my strcopy ...
string類的實現
參考c primer.string類的實現,清翔兔 06,jan.includeusing namespace std class string string void private char m data inline string string const char str inline st...
String類的實現
學習資料結構寫了乙個string的類,貼出來求指教 ifndef string h h define string h h include include include define defaultsize 128 class string maxsize為傳入引數的string string c...