算法库

时间:2011-04-09 21:22:48

标签: c++ algorithm sdk


是否有任何库/ sdk / etc“允许”在您的程序中使用算法没有任何困难?以下代码可能更好地描述我的问题(我需要这样的东西):

algorithm* a = new search_algorithm("binary_search");
a->set_data("some text to be searched");
search_result_t r = a->search("this_text");

感谢您的回复。

P.S。谢谢大家,但我已经“听说过”STL和Boost了。我上面用了一个简单的例子,但“在我的梦中”我也希望得到这个:

algorithm* a = new search_algorithm("boyer_moore");
//...
a = new graph_algorithm("brent");
a->set_graph(/*graph_t*/gt);
a->detect_cycles(...);

甚至是这样:

a = new tree_algorithm("kruskal");
tree_t* mt = new tree_t(...);
a->set_tree(mt);
a->get_min_spanning_tree(...);

3 个答案:

答案 0 :(得分:2)

您可以使用'STL:algorithms'和boost库。它并不总是包含您要查找的内容,但这是因为必须为您的数据集定制许多内容。

答案 1 :(得分:2)

你已经听说过Boost和STL_,所以我猜你已经听说过了

你究竟错过了什么?

答案 2 :(得分:0)

标准库已包含许多算法的模板(包括二进制搜索)。有一个小附带条件,二元搜索在您给出的示例中不起作用(它需要排序输入),它实际上比您显示的更容易:

int values[] = { 1, 3, 4, 5, 8, 9};

int *pos = std::lower_bound(values, values+6, 5);