- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我最终决定使用 std.RedBlackTree
而不是内置的关联数组(或散列),因为我需要一个排序的关联数组。所需的行为与 C++/STL 中的 std::map
非常相似。
void main() {
alias Tuple!(float, float) Pair;
alias RedBlackTree!Pair Map;
Map m1;
m1.insert(Pair(1.1, 2.2));
}
上面的代码,取决于你如何编译它(有或没有 -release),将导致段错误或将抛出断言。
同样的事情:
void main() {
struct Pair { float first, second; }
alias RedBlackTree!(Pair, "a.first < b.first") Map;
Map m1;
m1.insert(Pair(1.1, 2.2));
}
闻起来像个错误,但有解决方法吗?
最佳答案
RedBlackTree 是一个类,因此必须进行初始化。 m1 默认为空。您所看到的相当于 Java 中的 NullPointerException。
试试这个:
import std.stdio, std.container;
void main() {
struct Pair { float first, second; }
alias RedBlackTree!(Pair, "a.first < b.second") Map;
Map m1 = new Map;
m1.insert(Pair(1.1, 2.2));
}
此外,作为此编程示例的旁白提示:您可能需要考虑 RedBlackTree!(Pair, "a.first < b.first")
反而。原因是它会有一些奇怪的(不是很未定义,但可能不是你想要的)行为。
例如,Pair(1, 2) < Pair(1, 3)
会是真的。奇怪的是,Pair(1, 3) < Pair(1, 2)
也是如此。
关于d - 为什么 std.RedBlackTree 作为 map 中断?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10157714/
红黑树(Red Black Tree) 红黑树(Red Black Tree)是一种自平衡二叉查找树,是一种高效的查找树,学习之前先了解一下 平衡二叉树 。于 1972 年由 Rudolf
我在看RedBlackTree的来源文件,我偶然发现了 Tree 的定义,我在此处复制了相关部分: sealed abstract class Tree[A, +B]( @(inline @gette
我在用字符实例化 RedBlackTree 容器时遇到问题,但它适用于整数: import std.stdio; import std.container; void main() {
我需要一个类似于 STL 的双向迭代器 (operator class rbtree { public: rbtree(){ root = NULL; numberElem
我最终决定使用 std.RedBlackTree 而不是内置的关联数组(或散列),因为我需要一个排序的关联数组。所需的行为与 C++/STL 中的 std::map 非常相似。 void main()
来自 Data Structures and Problem Solving Using Java 的原始 Mark Allen Weis RedBlackTree 实现找到here . 我似乎无法理
我是一名优秀的程序员,十分优秀!