? std::set
같은 연속 메모리에 객체를 저장 합니까 std::vector
?
웹에서 이것을 찾을 수 없었습니다 .cppreference는 메모리 할당에 대한 세부 사항을 언급하지 않습니다. 그러나 왜 연속 메모리를 사용할 수 없었는지 알 수 없으므로 내 질문입니다.
성능 : 당신은 당신의 사용의 경우를 참조하십시오 (당신의 해시 기능에 따라 다름) 측정 할 필요가 channel9.msdn.com/Events/Build/2014/2-661을 에서 45:48
—
리처드 Critten
boost :: flat_set 도 참조하십시오 .
—
Caleth
"세트가 반복되거나 객체가 연속 메모리 위치에 저장 됨"또는 "모든 객체가 하나의 큰 메모리 덩어리에 저장되지만 (임의의 순서로)"와 같은 '연속적'을 의미합니까?
—
Pablo H
일반적으로 "컨테이너 A는 컨테이너 B와 동일합니다"라고 묻는 경우 대답은 "아니오"입니다. 그렇지 않으면 컨테이너 A 만있을 것입니다 (컨테이너 B를 갖는 목적은 무엇입니까?). 이것은 물론 컨테이너 어댑터 에는 적용되지 않지만
—
궤도
std::set
여기서 중요한 것은 그중 하나가 아닙니다.
set::insert
요구 사항 : en.cppreference.com/w/cpp/container/set/insert "... 반복자 또는 참조가 무효화 되지 않습니다 ...." 이므로 확장처럼 필요할 때 재 할당 할 수 없습니다std::vector
.