
DsMap::reverse 함수는 단일 기준으로 Map 내부의 데이터를 역순으로 정렬할 수 있습니다.
여러 기준으로 정렬할 때는, 기준을 정의한 후 이를 기준으로 Map 내부의 데이터를 역순으로 정렬할 수 있습니다.
예를 들어, Map 내부의 데이터가 다음과 같이 정의되어 있다고 가정해 보겠습니다.
#hostingforum.kr
cpp
DsMap map;
map["key1"] = "value1";
map["key2"] = "value2";
map["key3"] = "value3";
이 때, 정렬 기준을 두 가지로 정의해 보겠습니다. 첫 번째 기준은 "key"의 알파벳 순서이며, 두 번째 기준은 "value"의 길이 순서입니다.
#hostingforum.kr
cpp
// 정렬 기준 정의
bool compare(const DsMap::Entry &entry1, const DsMap::Entry &entry2) {
if (entry1.key < entry2.key) return true;
else if (entry1.key > entry2.key) return false;
else {
if (entry1.value.size() < entry2.value.size()) return true;
else if (entry1.value.size() > entry2.value.size()) return false;
else return false;
}
}
// Map 내부의 데이터 역순 정렬
DsMap::reverse(map.begin(), map.end(), compare);
이러한 방법으로, 정렬 기준을 정의하고 이를 사용하여 Map 내부의 데이터를 역순으로 정렬할 수 있습니다.
2025-04-18 11:11