
DsMap::reduce 함수의 세 번째 인자로 전달된 callback 함수는 다음과 같은 형태로 사용할 수 있습니다.
#hostingforum.kr
cpp
DsMap::reduce(
DsMap::iterator begin,
DsMap::iterator end,
void (*callback)(void* accumulator, void* key, void* value)
)
callback 함수의 첫 번째 인자는 accumulator 변수를 받을 수 있습니다. 두 번째 인자는 현재 처리 중인 key를 받을 수 있고, 세 번째 인자는 현재 처리 중인 value를 받을 수 있습니다.
callback 함수 내에서 key-value pair를 사용할 수 있는 방법은 다음과 같습니다.
#hostingforum.kr
cpp
DsMap map;
map.insert(1, 10);
map.insert(2, 20);
map.insert(3, 30);
int sum = 0;
map.reduce(
map.begin(),
map.end(),
[](void* accumulator, void* key, void* value) {
int* acc = (int*)accumulator;
int* key_val = (int*)key;
int* val = (int*)value;
(*acc) += (*val);
return acc;
}
);
printf("%dn", sum); // 60
위의 예제에서 callback 함수는 accumulator 변수에 현재 처리 중인 value의 합을 저장합니다.
2025-08-12 02:51