늘어나는만큼 내가 부스트 : unordered_map 및 표준 : : unordered_map 이해 "오버플로"(일명 같은 키로 삽입 얻을 여러 가지)의 측면에서 동일합니다. 그들은 "양동이"에 그것을 저장하므로 당신은 그 위에 반복 할 수 있습니다. 예를 들어캔트 unorderd지도에서 오버플로를 통해 interate
:
key: data:
"apple" 2
"peach" 4
"apple" 3
"peach" 8
는 "사과"에 대한 버킷 오른쪽 2 & 3를 포함 할 것인가?
글쎄,이 문제를 해결하는 데 어려움을 겪고 있습니다.
#define ANZ 10
typedef boost::unordered_map<uint16_t, int> uuidMap_int;
using namespace std;
int main()
{
uuidMap_int uuidMap;
boost::uuids::uuid entity1;
boost::uuids::uuid entity2;
for(unsigned int i = 0;i<ANZ;i++)
uuidMap.insert(std::pair<int,int>((i<5?0:1),i));
for(unsigned int i = 0;i < uuidMap.bucket_count();i++){
for(uuidMap_int::local_iterator it = uuidMap.begin(i); it != uuidMap.end(i);++it){
std::cout<<it->first<<"|"<<it->second<<"\n";
}
}
return 0;
}
는 않는 모든지도하고 충전에 2 개 새 항목을 만들 수 있습니다 :
여기 내 코드입니다. 여기 는 출력이처럼 보이도록되어있는 것이다 :
0|0
0|1
0|2
.
.
.
1|5
1|6
.
.
.
1|10
그러나 실제로 지금은 이런 일이 왜 잘 모릅니다이
0|0
1|5
것 같습니다. "오버플로"가 단순히 휴지통처럼 보이는 것처럼 보입니다. 그러나 sth simmilar 작은 데이터베이스를 만들려고, 그래서 ID 및 이와 같은지도에 ID를 말했다 속한 데이터 무리가 있어야합니다.
내가 잘못하고있는 것/다른지도를 사용하면 내가 원하는 방식으로 작업 할 수 있습니까?
이해가 잘못되었습니다. 그 외에는 잘못된 행동을하지 않습니다. – juanchopanza
@juanchopanza 내가 잘못한 곳을 설명하거나 여기에 매달 리도록 내버려 두시겠습니까? – MoustacheSpy
어쩌면 이것을 읽었을 것입니다 : http://en.cppreference.com/w/cpp/container/unordered_map. 'unordered_map'은 키 - 값 쌍을 가지고 있습니다. 아마도 필요한 것은 ['std :: unordered_multimap'] (http://en.cppreference.com/w/cpp/container/unordered_multimap)입니다. – juanchopanza