업데이트 : Visual Studio 2013을 사용하는 Windows에서이 "문제"가 나타납니다. Clang 3.3 및 최신 버전의 llvm 표준 라이브러리를 사용하는 Linux에서이 코드가 Linux에서는 표시되지 않습니다. 여전히, 나는 이것을 마이크로 소프트 버그로 쓸 준비가되지 않았다.unordered_set - 매우 작음 max_bucket_count
내가 일하고있는 unordered_set과 관련된 호기심 문제를 발견했습니다. 나는 1의 load_factor와 수백만의 최대 크기를 가지고 있지만, 다음은 maximum_bucket_count가 단지 8이라는 것을 보여줍니다. 다른 유형의 세트로 이것을 시도했습니다.
누구든지 설명 할 수 있습니까?
초기화 또는 구성 종속 번호가 아닌 시스템 또는 라이브러리 구현 제한으로 간주됩니다. I는 MAX_COUNT (즉, 백만)
std::unordered_set<int> testSet;
std::cout << "max_size = " << testSet.max_size() << std::endl;
std::cout << "max_bucket_count = " << testSet.max_bucket_count() << std::endl;
std::cout << "max_load_factor = " << testSet.max_load_factor() << std::endl;
원래 질문은 max_bucket_count에 관한 것입니다. 제목은 정확했지만 질문 본문에서 오타를 수정해야했습니다. 귀하의 출력 maxitbucket_count는 TRILLIONS보다 높고 내 시스템에서는 8입니다. cpprefernce.com에서 : max_bucket_count() : 시스템 또는 라이브러리 구현 제한으로 인해 컨테이너가 보유 할 수있는 최대 버킷 수를 반환합니다. – Arbalest
사용중인 표준 라이브러리 구현은 무엇입니까? –
좋은 질문 - 나는 질문을 업데이 트합니다. Visual Studio 2013을 사용하는 Windows에서이 "문제"가 발생합니다. Linux에서 Clang 3.3과 최신 버전의 llvm 표준 라이브러리를 사용하여 동일한 코드를 볼 수 없습니다. – Arbalest