Avatar ·

HashMap में कुशल खोज और इन्सर्ट Rust में: दोहरी हैशिंग से कैसे बचें?

नमस्ते सहकर्मियों! मैं Rust सीखना शुरू कर रहा हूँ और एक सामान्य समस्या का सामना किया है: अगर key मौजूद है तो HashMap में value को अपडेट करना है, या अगर key नहीं है तो नई pair इन्सर्ट करनी है। समस्या यह है कि मैं इसे दो चरणों में कर रहा हूँ: पहले contains_key() के माध्यम से key की उपस्थिति जांचता हूँ, फिर value इन्सर्ट या बदलता हूँ। लेकिन जैसा कि मैं समझता हूँ, इससे दोहरी हैशिंग होती है — एक बार जांच के दौरान और दूसरी बार इन्सर्ट के दौरान। यह अकुशल लगता है, खासकर बड़े dictionaries के लिए।

यहाँ मेरा वर्तमान कोड है:

use std::collections::HashMap;

fn update_or_insert(map: &mut HashMap<String, i32>, key: &str, value: i32) {
    if map.contains_key(key) {
        // मौजूदा value अपडेट करें
        if let Some(val) = map.get_mut(key) {
            *val = value;
        }
    } else {
        // नया इन्सर्ट करें
        map.insert(key.to_string(), value);
    }
}

यह कोड काम करता है, लेकिन मुझे चिंता है कि contains_ke

अभी तक कोई उत्तर नहीं।

लॉग इन करें उत्तर देने के लिए

ब्लॉग