Tôi đang tạo một số std::map<int, int>
bằng C++ mà tôi muốn chúng được sắp xếp từ cao nhất đến thấp nhất thay vì thứ tự sắp xếp mặc định. Nghiên cứu của tôi đưa tôi đến với std::greater trông đầy hứa hẹn nhưng khi cố gắng sử dụng nó Tôi nhận được một lỗi biên dịch:Cách sắp xếp các phím bản đồ C++ với tiêu chuẩn :: lớn hơn?
invalid type argument of unary ‘*’ (have ‘int’)
khai bản đồ của tôi là:
std::map<int, int, std::greater<int> > numMap;
Và lỗi là nhận được ném từ này chức năng:
void Row::addNumber(int num, int pos) {
numMap.insert(num, pos);
}
câu trả lời cho câu hỏi tương tự như this bao gồm ngoặc trong việc kê khai, tức là std :: hơn () - nhưng khi tôi bao gồm những lỗi đó, tôi nhận được nhiều lỗi liên quan đến một hàm trả về một hàm.
vấn đề của bạn không được giải quyết khi bạn đọc bản đồ ngược? chỉ nói. – fonZ
Bạn có nói rằng bạn không nhận được cùng một lỗi khi bạn sử dụng so sánh mặc định 'std :: map'? Bởi vì điều đó không quan trọng một chút trong trường hợp này. –