1樓:MashPlant
之所以沒有這樣做,我推測原因有
毫無疑問這會帶來額外的時間,記憶體開銷,對於沒有遍歷map需求的使用者來說這一開銷是沒有意義的,don't pay for what you don't use
無論是否這樣做,遍歷map都是O(n)的,區別僅在於常係數,這樣做的好處僅僅在於查詢前驅後繼可以在常數時間內完成
2樓:
線性遍歷是可以做到的,但是我不知道代價如何。我的想法是加乙個成員函式
void map::get_list(vector<>&key,vector<>&val);直接通過中序遍歷將遍歷結果儲存在兩個陣列中,但這麼新增後會引發哪些其他問題我就不知道了。也許正是因為一些隱患,stl才沒有提供對map的線性遍歷方案吧。
3樓:
因為STL本身就不是主要為遍歷設計的,而線性化操作會付出開銷,只需要查詢的時候不需要這種開銷。C++的原則之一就是不讓使用者為不需要的開銷買單。
std::
vector
pair T2>> cache (MyMap .begin (),MyMap .end ()); 遍歷速度最快的當然是vector啊……頻繁訪問的資料手動轉存成vector會比較好。另外deque也可以酌情考慮。 一句話,Integer的hash code就是本身。向HashSet中插入乙個Integer時,對應的底層實際儲存值的陣列的索引應該是 integer length。題主隨機生成了10000個從0到29的整數,但Set保留的唯一值只有0 29這30個數。因為HashSet的自動擴容機制,最終的底層陣... Ten2one 遍歷性是指某統計量的時域平均等於集總平均,則稱此統計量是具有遍歷性的。如果不是平穩隨機過程,那麼它的集總平均是變化的,也就不能用時域平均來確定集總平均啦。 Jonnycg 通俗地來形容一下平穩和遍歷性。假設城市a有兩個公園A,B,分別處於兩個中心。假設人口均勻分布,那麼我們預期一年之... TairanoKaeru m 是個鼻子音,它既不發目,也不發沫,而是你在發目和沫時張嘴之前的那個鼻音。當然你要是真不張嘴,它會被記成 m 因為確實,張嘴之後這個音向母音的過渡段會受到一些影響,不盡相同。 超級詞力 m 音的發音方法很簡單,和我們漢語拼音中的聲母m基本上是一樣的。但是為什麼我們會覺得英...Java遍歷HashSet為什麼輸出是有序的?
為什麼具有遍歷性的隨機過程一定是平穩的?
音標 m 的發音是 目 。請問,為什麼 map 的音標中, m 發的是 沫 ?