나는 'C 번호에 대한 책을 읽은이야되었다 ImmutableSortedDictionary
에서 System.Collections.Immutable
내 프로그램에 적용하는 방법에 대한 생각. 나는 C ++을 좋아 lower_bound
하고 upper_bound
( here 참조 ) 오히려 범위 조회를 위해 일종의 무언가를 기대하고있었습니다. 그러나 유사한 방법 은 문서에서 이상하게 보이지 않는 것 같습니다 . 뭔가 빠졌습니까? 또는 MS는 정렬 된 범위에 효율적으로 액세스하지 않고 정렬 된 사전을 제공합니까? 그것은 IEnumerable
확장 방법이라고 말하면 키 중 하나에서 할 수있는 것처럼 보이지 않으므로 컬렉션에서 직접 제공 한 것을 보지 못합니다.
이
—
테오도르 Zoulias
ImmutableList<T>
클래스는 AVL 트리로도 구현됩니다. 로부터 소스 코드 :/// The root node of the AVL tree that stores this set.
목록이 AVL true를 사용하여 불변성을 구현하는지 또는 AVL 트리 자체가 불변인지 여부를 알고 있습니까? (어쨌든 나무를 노출시키지 않기 때문에 중요하지 않을 수도 있습니다).
—
J Trana
문서 에 따르면 (
—
Theodor Zoulias
ImmutableList<T>
AVL 트리에 의해 지원)과 ImmutableArray<T>
(배열에 의해 지원 )에 비해 ( AVL 트리에 의해 지원) 의 장점은 다음과 같습니다 . 불변 목록을 사용해야하는 이유 : 1) 데이터 업데이트가 일반적이거나 요소 수가 적을 것으로 예상되지 않습니다. 2) 컬렉션을 업데이트하는 것은 내용을 반복하는 것보다 성능이 더 중요합니다.
큰 AVL 트리에서 요소를 추가하거나 삭제할 때 대부분의 노드를 공유하고 몇 개의 새 노드 만 만들어 원래 트리를 손상시키지 않고 새 트리를 얻을 수 있기 때문입니다. ( 지속 데이터 구조 - 트리 )
—
테오도르 Zoulias
IBinarySearchTree<K,V>
구현은 기대했던 것에 더 가깝습니다. 그가 그것에 대해 더 고민했는지 궁금해?