【发布时间】:2015-01-05 20:39:28
【问题描述】:
刚开始(尝试)学习 Rust。如何在 std::collections::BTreeMap 中使用“字节串”作为键?
我好像不能使用 [u8] 因为类型需要固定大小。
使用向量,例如
BTreeMap<Vec<u8>, MyType>
...看起来很浪费。
我可以尝试将所有字节串连接到一个 Vec 中并将其切片用作 BTree 键,但有更好的方法吗?
【问题讨论】:
-
最终拥有你的字节串的是什么?
-
你能解释一下为什么“使用向量似乎很浪费”吗?
-
我只是在考虑过度分配以及向量具有的任何簿记开销。但我想我可以在将它们放入地图之前缩小矢量以适应它们。
-
Vec本身就是pretty bare-bones,只是一个指针、一个长度和一个容量。缩小它可能很有用,就像把它放在一个地方并只使用切片(它只是一个指针和一个长度)一样。钥匙的大致数量是多少?平均多长时间?是否值得担心这种级别的细节(也就是您是否进行了基准测试)? ^_^
标签: rust