`ImmutableSortedSet` 和 fsharp `Set` 有什么区别?

2024-05-06

BCL引入了一组Immutable Collections http://blogs.msdn.com/b/bclteam/archive/2012/12/18/preview-of-immutable-collections-released-on-nuget.aspx

我想知道有什么区别ImmutableSortedSet和原生的 FSharpSet?两者的性能特征似乎相似。我也曾在某处看到过SortedSet是作为红黑树实现的,所以我猜ImmutableSortedSet做同样的事情。

fsharp的内部实现是什么map? Is is 红黑树 http://en.wikibooks.org/wiki/F_Sharp_Programming/Sets_and_Maps#The_Set_Module如此处所述或AVL tree http://fdatamining.blogspot.co.uk/2010/08/reading-f-projects-part-ii-f-set.html正如这里发现的?

另外,为什么MSDN文档没有明确说明图书馆馆藏的实际数据结构是什么?我知道这些是实施细节并且即将改变。我的观点是,如果他们不想将库数据类型绑定到某种类型的众所周知的数据结构,他们至少应该提供所有方法在复杂性方面的性能签名的总结?


F# Set 和 Map 类型是使用 AVL 树实现的。

我不了解 MSDN 文档,您必须向 F# 团队询问:)

无论如何,红黑树和AVL树的主要操作具有相同的计算复杂度。在实践中,它们具有不同的性能特征,这可能会导致您为特定应用程序选择其中之一 - 红黑树具有更快的插入/删除速度,因为它们不需要对树进行太多的重新平衡,但需要进行检索由于 AVL 树对插入/删除执行了额外的平衡,因此速度更快。我想这就是为 F# Map 和 Set 实现选择 AVL 树的原因——Map/Set 通常创建一次(即不修改),然后重复查询。

https://en.wikipedia.org/wiki/Red%E2%80%93black_tree https://en.wikipedia.org/wiki/Red%E2%80%93black_tree

https://en.wikipedia.org/wiki/AVL_tree https://en.wikipedia.org/wiki/AVL_tree

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

`ImmutableSortedSet` 和 fsharp `Set` 有什么区别? 的相关文章

  • 通过 TCP/.NET SSLStream 发送文件很慢/无法正常工作

    我正在编写一个与 SSL 配合使用的服务器 客户端应用程序 通过SSLStream 它必须做很多事情 不仅仅是文件接收 发送 目前 它的工作原理是 只有一个连接 我总是使用从客户端 服务器发送数据SSLStream WriteLine 并使
  • 从 C++ 中的函数返回二维数组[重复]

    这个问题在这里已经有答案了 可能的重复 C 从函数返回多维数组 https stackoverflow com questions 3716595 c returning multidimension array from function
  • 如何正确实现带有 close 方法的处置模式(CA1063)

    框架设计指南 第二版 第 327 页 说 考虑提供方法Close 除了Dispose 如果接近 是该领域的标准术语 这样做时 重要的是使 Close 实现与Dispose并考虑实施IDisposable Dispose方法明确 因此 按照提
  • 如何有效地左填充字节数组

    假设我有一个数组 LogoDataBy byte 0x00000008 0x00000000 0x41 0x00000001 0x42 0x00000002 0x43 0x00000003 0x44 0x00000004 0x31 0x00
  • 如何在Qt3D中优化点云渲染

    我正在尝试使用 Qt3D 显示大型点云 20M pts 我第一次发现这个图书馆https github com MASKOR Qt3DPointcloudRenderer https github com MASKOR Qt3DPointc
  • 获取不带波形符的泛型类名称[重复]

    这个问题在这里已经有答案了 我正在尝试获取类型名称T使用这个 typeof T Name 班级名称是ConfigSettings 而不是返回ConfigSettings它正在返回ConfigSettings 1 有什么具体原因吗 我怎样才能
  • 如何获取 PropertyGrid 的单元格值 (c#)?

    如何在 C 中获取属性网格项和项的值 例如 Name Ali LastName Ahmadi Name 和 LastName 是 propertygrid 的 2 个属性 PropertyGrid只是对象的组件模型表示的视图 我会说 查看组
  • 用于轻松动态反射的 C# 库

    是否有任何库 例如开源项目等 可以更轻松地使用复杂的反射 例如动态创建对象或类 检查实例等 Thanks 有一个LinFu http www codeproject com KB cs LinFuPart1 aspx可用的库除了反射之外还可
  • 在Python中寻找坐标系中某些点之间的最短路径

    我编写了一个代码 可以在坐标系中的特定宽度和长度范围内生成所需数量的点 它计算并列出我使用欧几里德方法生成的这些点的距离矩阵 我的代码在这里 import pandas as pd from scipy spatial import dis
  • Apple IOS 上的 C# 应用程序 [已关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我有基于 C Net 的应用程序 有什么方法可以在 Apple IOS 上运行这些应用程序吗 我没有资
  • gcc 删除内联汇编代码

    看起来 gcc 4 6 2 删除了它认为函数中未使用的代码 test c int main void goto exit handler asm volatile jmp 0x0 exit return 0 拆解main 0x0804840
  • 获取进程的所有 DLL

    我想获取为给定进程加载的所有 dll 的列表 我目前正在使用 NET框架4 0 我知道有一个bug https connect microsoft com VisualStudio feedback details 546430 syste
  • 使用 OpenSSL 库在 C++ 中生成 SHA 哈希值

    如何使用以下命令生成 SHA1 或 SHA2 哈希值OpenSSL https openssl org图书馆 我搜索了谷歌 找不到任何函数或示例代码 从命令行来看 很简单 printf compute sha1 openssl sha1 您
  • 获取RFC返回的嵌套结构的值?

    我是 C 新手 我有 rfc 它以嵌套结构的形式从 SAP 系统返回数据 但是当我使用以下方式获取该数据时 IrfcTable table rfc getTable exporting parameter et customer 它仅返回第
  • 扩展一个类

    编辑回答 虽然我最初的问题并没有完全按照康拉德 鲁道夫提供的答案所解决的方式解释我的需求 但他 无意或有意 基本上为我写了我想写的内容 类本身不会被扩展 但通过使类了解新函数来扩展其功能 这些新函数允许它 类 处理更广泛的问题 我非常感谢您
  • OpenMP 和 C++:this 指针

    Is thisOpenMP 中始终共享指针 尽管编译器不会抱怨以下代码default none pragma omp parallel for default none shared n for SInt i 0 i lt n i f i
  • vs2010 c++ 通过debug查看指针内容

    我正在使用 Vs2010 c 处理 2D 数组 我从一维指针开始 并使用操作 如下 class CMatrix void clear public int nRows int nCols short MyMat CMatrix CMatri
  • 通过开源 PCL 使用 API 查看 3D 点云

    我使用 ToF 飞行时间 相机来获取 XYZ 格式的深度数据 为了实现 3D 点云的可视化目的 我想使用开源 PCL 提供的 API 网址为http pointclouds org documentation tutorials pcl v
  • Eclipse CDT C/C++:包含另一个项目的头文件

    我在 Eclipse CDT 中有两个 C 项目main and shared In shared我有一个名为calc h 我想在中使用这个标头main 所以我做了以下事情 added include calc h到相关文件main In
  • Eclipse (C/C++) 错误:平台关闭后发现作业仍在运行

    当我打开 Eclipse 时 它 在一小时前工作过 但在启动时冻结并给出错误 发生错误 请参阅日志文件 请参阅下面的日志文件 尽管其中一些信息出现在日志中 操作系统 Mac OSX 10 7 5 Eclipse 面向 C C 开发人员的 E

随机推荐

  • 如何从 .Net 中的许多 HTML 文件中读取 xpath 值?

    我的一个文件夹中有大约 5000 个 html 文件 我需要循环遍历它们 打开 使用 xpath 获取 10 个值 关闭并存储在 SQL Server 数据库中 使用 Net 读取 xpath 值的最简单方法是什么 xpath 应该相当稳定
  • 如何通过内存将文件上传到Google Drive [python]

    我一直在论坛上搜索 但没有成功解决我的问题 我正在尝试使用 Google Drive Python API 将内存中的文件上传到 Google Drive 但是 我见过的所有示例都使用磁盘上具有特定文件路径和名称的文件 service bu
  • 在 Ada 中定义通用标量类型包

    我想通过制作一个用于操作多项式的 Ada 包来测试编写 Ada 包的水 可以为多种代数结构定义多项式 因此为了反映这一点 我想使该包通用 以便它可以与浮点数 整数或其他数字子类型一起使用 我现在想说 我对 Ada 的类型系统如何工作或者它的
  • 如何设置 Xcode 来代替 Qt Creator 工作?

    我不使用 Qt Creator 的 UI 设计功能 对于一个新项目 我想体验一下使用 Xcode 的工作 这将是一个常规的 Qt 项目 使用 C 和 Qt 库开发 就像在 Qt Creator 中一样 我没有使用 OS X 尤其是 Xcod
  • 使用 PHP 的 JavaScript atob 操作

    我想知道是否可以使用 PHP 解密 JavaScript 加密文本 使用 JavaScript 的 btoa 函数加密 看一下base64 decode http php net manual en function base64 deco
  • XML声明编码

    它实际上有什么作用 根据我的基本理解 XML 只是一种格式化文本 所以不涉及二进制文本转换 我高度怀疑 UTF 8 和 ASCII 编码之间的唯一区别是 ASCII 编码会将所有非 ASCII 字符转换为 XML 实体 而不是仅保留 XML
  • Jetpack Compose:嵌套导航,在嵌套路径中使用底部栏导航

    我的应用程序具有以下结构 并且由于路线 B 有自己的底部导航栏 因此有自己的 NavHost 我如何从屏幕 C 从选项卡栏打开 导航到路线 A Nested Route onboarding route startDestination s
  • bootstrap-3 在 div 底部对齐链接和按钮

    从下面的屏幕截图中可以看出 链接并未在底部对齐div 如何对齐按钮edit delete add cart在底部div 注意我没有使用table bottomaligned position absolute bottom 0 margin
  • 通用高阶函数

    当我将泛型函数作为本地值传递时 但在作为参数传递时却不能使用具有不同类型参数的泛型函数时 是否有原因 例如 let f id let g x y f x f y g 1 2 工作正常 但如果我尝试将函数作为参数传递 let g f x y
  • Java:不可变类的伪 setter 方法

    假设我有一个 Java 类 Foo 它具有不可变的数据 class Foo final private int x public int getX return this x final private OtherStuff otherst
  • 检查变量是否为空或空字符串的更好方法?

    由于 PHP 是一种动态语言 检查提供的字段是否为空的最佳方法是什么 我想确保 null 被视为空字符串 仅包含空格的字符串被视为空 0 不被视为空 这是我到目前为止所得到的 question trim POST question if q
  • 抛出异常但保留堆栈跟踪

    我想抛出异常 但也带有自定义消息和持久堆栈跟踪 我已经经历了各种线程 catch Exception ex throw Message is read only but stacktrace persist throw ex Message
  • 可变参数模板的模板模板参数扩展

    我最近了解到模板模板参数的存在 现在想知道是否可以这样做 template
  • 使用 asp.net mvc 在 Dropbox 中下载文件

    我正在使用 ASP net MVC 4 和 Dropbox API 从我的 Dropbox 帐户下载文件 我已经在我的项目中成功安装了 api 我正在关注本教程 https www dropbox com developers docume
  • SQLAlchemy - 将文本查询与过滤器结合起来

    我在用着SA 0 6 6 Python 2 66 and Postgres 8 3 我有某些查询需要一些复杂的安全检查 可以使用WITH RECURSIVE询问 我想做的是将文本查询与查询对象结合起来 这样我就可以根据需要应用过滤器 我最初
  • 发布后订阅状态发生变化

    成功安装 Cygnus 连接器并测试订阅的创建后 具有以下文件 agent 1 conf cygnus ngsi sources http source cygnus ngsi sinks hdfs sink cygnus ngsi cha
  • 为每个具有缺失值的组添加行[重复]

    这个问题在这里已经有答案了 每个篮子可容纳的水果总数为 10 对于每个篮子 如果计数为 10 并且缺少一个水果 我想为该篮子添加一行 该行表示该水果的计数为 0 这是生成数据帧的代码 Basket lt c A A B B C C C Fr
  • 如果手机(本机)中存在多条未读短信,如何通知从本机(手机)读取了哪些短信?

    如果本机 手机 中存在 3 条未读 SMS 消息 并且用户已阅读其中一条 SMS 如何识别在我们的应用程序中读取了哪些短信 从本机 目前我正在使用 ContentObserver 当用户从本机 电话 读取短信时 会调用 onChange 方
  • Xamarin.iOS 上的 MakeGenericMethod/MakeGenericType

    我试图弄清楚从 Xamarin 部署 iOS 时这些限制的真正含义 http developer xamarin com guides ios advanced topics limitations http developer xamar
  • `ImmutableSortedSet` 和 fsharp `Set` 有什么区别?

    BCL引入了一组Immutable Collections http blogs msdn com b bclteam archive 2012 12 18 preview of immutable collections released