Tôi không hiểu tại sao tôi không thể có một unordered_map
với một array<int,3>
như các loại chính:Sử dụng một unordered_map với mảng như phím
#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;
}
tôi nhận được một lỗi dài, phần liên hệ nhất là
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;
^
Các mảng không đủ điều kiện làm khóa vì chúng thiếu một số yêu cầu?
Tôi gặp lỗi khi nói rằng không có hàm băm cho mảng. Tôi đoán điều này là dự kiến và bạn nên thực hiện một._ "lỗi: không khớp cho cuộc gọi đến '(const std :: băm>) (const std :: mảng &)'" _ GCC 5.1.0 –
Nhờ tất cả những người đã chỉ ra sự thiếu hàm băm cho mảng. Tôi ngây thơ nghĩ rằng đó là một điều khá phổ biến, ví dụ để lưu trữ một ma trận thưa thớt (không phải những gì tôi đang làm ở đây). – Adrien