首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >C++元编程-编译时搜索树

C++元编程-编译时搜索树
EN

Stack Overflow用户
提问于 2015-02-19 18:48:26
回答 3查看 2.1K关注 0票数 4

更新:对不起,混淆术语-我不需要二叉树,而是段树或间隔树.

假设每次执行我的程序时,我必须静态地初始化一个搜索树。

代码语言:javascript
复制
Tree t;
t.add(10, 'Apple');
t.add(20, 'Pear');
t.add(50, 'Orange');
...
t.add(300, 'Cucumber');

..
// then I use it.
int key = 15;
String s = t.lookup(key) // Returns 'Apple' ( as the key is between 10 and 20)

树中的键和值是“静态的”,硬编码,但必须不时维护。是否有元编程技巧,如何在编译期间将键值组织成二进制搜索树(或跳过列表)?

例如,整个搜索树直接在代码.text中实现,而在.data中不保存任何内容?我还可以“预测”密钥的数量,并提供订单。

EN

Stack Overflow用户

发布于 2015-02-19 23:17:15

我会使用switch进行查找。

编译器可以自由地使用跳转表、二进制搜索或任何其他技术来优化查找。对于大多数开关表,编译器通常会发出最快的东西。

代码语言:javascript
复制
switch (key)
{
    case 10: return "Apple";
    case 20: return "Pear";
    ...
}
票数 0
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28617781

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档