2017-05-12 15 views
1

해당 위치의 unordered_map 덮어 쓰기 현재 쌍의 특정 위치에 요소를 삽입하려고합니다. 다음 코드를 시도했습니다 :unordered_map의 특정 위치에 요소를 삽입하는 방법이 있습니까?

unordered_map<string, string>::iterator it = myMap.begin() + 256; 
myMap.insert(it, newPair); 

오류가 남기 때문에 작동하지 않습니다. 아무도 도와 줄 수 있습니까? 미리 감사드립니다.

+0

지도에서 '키'를 덮어 쓸 수 없습니다. 그건 그지도를 망칠거야. 왜 이것을 필요로합니까? – NathanOliver

+0

해시 테이블의 작동 방식을 이해하고 있습니까? 아마 unordered_map을 사용하기 전에 그것을보십시오. – DeiDei

+0

LZW 압축 알고리즘을 구현하고 있으며 unordered_map을 사용하여 string-binary_code 쌍을 저장했습니다. – Luki

답변

2

unordered_map의 특정 위치에 개체를 삽입 할 수 없습니다. unordered_map은 해시 구현을 사용하여 모든 일반 함수 (삽입, 삭제, 찾기)에 일정한 시간을줍니다. unordered_map의 키는 항상 const입니다. 변경할 수 없습니다. 삽입 함수의 iterator에 대해서는 힌트 일 뿐이므로이 값은 컨테이너가 작업을 최적화하는 데 사용할 수도 있고 사용하지 않을 수도 있습니다.