표준 라이브러리 정렬 알고리즘 (예 : std :: sort)이 정렬을 위해 힙 메모리를 사용하는지 궁금합니다.std :: sort 알고리즘 메모리 사용
정렬 알고리즘이나 표준 라이브러리 알고리즘에서 일반적으로 사용되는 종류 (힙, 스택)와 임시 메모리의 양을 확인하는 방법은 무엇입니까?
제어 된 메모리 사용이 중요한 임베디드 환경에 표준 라이브러리 알고리즘 중 일부를 소개하는 것이 배경입니다. (특히 힙은 사용되지 않습니다).
미리 감사드립니다.
일반 응답 또는 "보장"이 있는지 나는 모른다. 그러나 문제가 중요하다면 일반적인 대답은 어쨌든 충분하지 않을 수 있습니다. 사용중인 플랫폼에서 std :: sort 및 특정 구현에 대한 대답이 필요합니다. 많은 std (특히 템플릿)가 C++ 헤더에 완전히 구현되어 있기 때문에 운이 좋을 수도 있습니다. 이 경우 실제로 구현을보고 걱정하는 모든 것을 검증하지 못하게하는 것이 아닙니다. – TheUndeadFish
최근 표준 초안을 탐색했습니다. 나는'sort'가 힙을 사용할 수 없다는 것을 전혀 보지 못했고 단지'swap '이 지원되는 것에 대한 요구 사항만을 보았습니다. swap을 통해 파고 들며, 힙이 스왑 중에 임시 변수를 저장하는 데 사용되는지 여부에 대한 세부 사항은 다시 없습니다. – user4581301
@ user4581301 표준은 "heap"과 "stack"이라는 개념조차 가지고 있지 않기 때문에 "where"메모리가 할당된다는 보장은 다소 놀랄 것입니다. –