मुझे समझ नहीं आता क्यों मैं कुंजी प्रकार के रूप में एक array<int,3>
के साथ एक unordered_map
नहीं कर सकते हैं:कुंजी के रूप में सरणियों के साथ एक unordered_map का उपयोग
#include <unordered_map>
using namespace std;
int main() {
array<int,3> key = {0,1,2};
unordered_map< array<int,3> , int > test;
test[key] = 2;
return 0;
}
मैं एक लंबे त्रुटि मिलती है, सबसे उचित हिस्सा होने
main.cpp:11:9: error: no match for ‘operator[]’ (operand types are std::unordered_map<std::array<int, 3ul>, int>’ and ‘std::array<int, 3ul>’)
test[key] = 2;
^
क्या सरणी कुंजी होने के योग्य नहीं हैं क्योंकि उन्हें कुछ आवश्यकताएं याद आती हैं?
मुझे एक त्रुटि मिल रही है जिसमें सरणी के लिए कोई हैश फ़ंक्शन नहीं है। मुझे लगता है कि यह उम्मीद की जाती है और आपको एक को लागू करना चाहिए।_ "त्रुटि: कॉल के लिए कोई मिलान नहीं है '(const std :: हैश>) (const std :: array और)'" _ जीसीसी 5.1.0 –
उन सभी लोगों के लिए धन्यवाद जिन्होंने कमी की कमी की सरणी के लिए एक हैश समारोह। मैंने मूर्खता से सोचा कि यह एक बहुत ही आम बात है, उदाहरण के लिए एक स्पैर मैट्रिक्स स्टोर करने के लिए (मैं यहां क्या कर रहा हूं)। – Adrien