시도는 매우 빠른 데이터 구조입니다. 단어를 찾으려면 O (sizeofword) 시간이 걸리며, std::map
은 자체 균형이 잡힌 나무입니다. 표준 C++ 맵 템플릿이 구현되지 않는 이유는 무엇입니까? 특별한 이유가 있습니까? 자체 균형 트리가 아닌 트라이를 사용하면 어떤 상반 관계가 있습니까?C++ 맵이 시도로 구현되지 않는 이유는 무엇입니까?
답변
Tries은 저장할 키를 숫자 단위 또는 문자 단위로 처리 할 수있는 경우에만 사용할 수 있습니다. C++ std::map
및 std::set
은 키와 비슷한 요소와 함께 작동하도록 설계되었으므로 문자를 문자별로 처리하는 방식으로 구현할 수 없습니다. 그들은 대신 (일반적으로) 키에 대해 인트로 필 할 필요가없고 비교기를 사용하여 빠른 조회를 수행 할 수있는 균형 이진 검색 트리를 사용합니다.
특정 속성이 키를 보유하고 있다는 것을 알고 있다면 경우에 따라 시도보다 더 잘 수행 할 수 있습니다 (예제는 van Emde Boas tree 참조). 그러나 라이브러리 설계자는 많은 유스 케이스를 설계해야하므로 최대한 많은 수의 옵션을 처리해야하므로 절대적으로 최선의 옵션보다 느린 옵션을 선택해야 할 수도 있습니다.
또한 키가 문자열 일 때 trie를 사용하는 std::map
또는 std::set
의 특수화를 준수하는 C++ 구현이 실제로 실제로 완벽하게 가능합니다. 나는 아무 것도 믿지 않지만 이론적으로 가능합니다.
희망이 도움이됩니다.
작은 데이터 세트의 경우 균형 트리가 가장 일반적인 trie 구현보다 더 효율적일 수 있습니다. 나는 trie가 실제로 더 큰 데이터 세트로만 효율적이된다는 것을 알았습니다. –
- 1. JML이 Java의 주석으로 구현되지 않는 이유는 무엇입니까?
- 2. Hadoop이 MPI를 사용하여 구현되지 않는 이유는 무엇입니까?
- 3. zipWithIndex가 Iterable에서 구현되고 Traversable에서 구현되지 않는 이유는 무엇입니까?
- 4. 이 스프링 맵이 내 스칼라 객체에 삽입되지 않는 이유는 무엇입니까?
- 5. 반환하는 비트 맵이 제대로 반환되지 않는 이유는 무엇입니까?
- 6. Java Collections API에 Tree가 구현되지 않는 이유
- 7. C++ 맵이 정말 느린가요?
- 8. C# 메서드가 호출되지 않는 이유는 무엇입니까?
- 9. 이 C++ 코드가 작동하지 않는 이유는 무엇입니까?
- 10. C++에서 malloc을 사용하지 않는 이유는 무엇입니까?
- 11. 목표 C : NSMutableArray가 작동하지 않는 이유는 무엇입니까?
- 12. C++ - Array1D &를 반환하지 않는 이유는 무엇입니까?
- 13. WPF가 C++ .NET을 지원하지 않는 이유는 무엇입니까?
- 14. 이 코드가 작동하지 않는 이유는 무엇입니까? C++
- 15. C++에서이 기본값을 허용하지 않는 이유는 무엇입니까?
- 16. Nhibernate.Linq가 "Compareto 메서드가 구현되지 않았습니다"라는 예외를 throw하는 이유는 무엇입니까?
- 17. 이미지 맵이 지원되지 않는 위치는 어디입니까?
- 18. CGPathIsRect가 작동하지 않는 이유는 무엇입니까? CGPathContainsPoint가 작동하지 않는 이유는 무엇입니까?
- 19. CSS가로드되지 않는 이유는 무엇입니까?
- 20. 인쇄되지 않는 이유는 무엇입니까?
- 21. 이미지 바이트 배열의 비트 맵이 항상 null 인 이유는 무엇입니까?
- 22. 전환이 작동하지 않는 이유는 무엇입니까?
- 23. Powershell이 지워지지 않는 이유는 무엇입니까?
- 24. JNIOnLoad가 실행되지 않는 이유는 무엇입니까?
- 25. JTable이 표시되지 않는 이유는 무엇입니까?
- 26. TinyMVC가 컨트롤러를로드하지 않는 이유는 무엇입니까?
- 27. fb.event가 실행되지 않는 이유는 무엇입니까?
- 28. EventWaitHandle이 작동하지 않는 이유는 무엇입니까?
- 29. C#에서 플래그 열거 형에 대해 << and >> 연산자가 구현되지 않은 이유는 무엇입니까?
- 30. C# System.Drawing Graphic 구현되지 않음 예외
trie를 사용하여 문자열이 아닌 문자열을 저장하는 방법은 무엇입니까? –
trie의 O (n) 복잡도는 어떻게됩니까? – n0rd
@ n0rd : O (n)! = O (sizeofword) ... –