이 질문은 해시 테이블을 대상으로하지만 링크 된 목록이나 트리와 같은 다른 데이터 구조도 포함 할 수 있습니다. 만약 구조체가 있다면해시 테이블 (맵)은 메모리에 어떻게 저장됩니까?
예를 들어, 다음과 같이
struct Data
{
int value1;
int value2;
int value3;
}
을 각각 정수 4 바이트 정렬 메모리에 순차적으로 저장되고, 순차적으로뿐만 아니라 저장된 해시 테이블의 키 값은 무엇입니까? 다음을 고려한 경우 :
std::map<int, string> list;
list[0] = "first";
첫 번째 요소는 다음과 같이 표시됩니까?
struct ListNode
{
int key;
string value;
}
와 키 값과
경우는 4 바이트 정렬되고 순차적으로 저장되고, 그 다음 문제 쌍 저장 않는 경우?링크 된 목록의 노드는 어떻습니까?
이 개념을 시각화하고 메모리 저장에 대한 동일한 지침이 열린 주소 해시 (로드가 1 미만) 또는 체인 해시 (로드가 중요하지 않음)에도 적용되는지 확인하십시오.
감사합니다. 본질적으로, 그것은 많은 다른 변수에 달려있다. – reectrix