C ++标准/事实上的STL算法包装器

时间:2010-02-01 19:44:58

标签: c++ algorithm boost containers wrapper

是否存在标准算法的标准/事实标准(boost)包装器,它们与定义开始和结束的容器一起使用。让我告诉你我对代码的意思:

// instead of specifying begin and end
std::copy(vector.begin(), vector.end(), output);
// write as
xxx::copy(vector, output);

我知道它可以很容易地写出来,但我正在寻找一种无处不在的东西。 感谢。

4 个答案:

答案 0 :(得分:8)

Boost Range库有一个名为RangeEx的扩展,它包含所有stl算法的范围包装器,以及一些新算法。

最近被Boost接受了,所以它还没有出现在当前的“官方”版本中(1.41)。在此更改之前,您可以从Boost Vault download the latest version进行更改。

不知道这是否会成为C ++标准的一部分,但它在Boost中的事实意味着它将成为事实上的标准。

答案 1 :(得分:2)

下一个标准(希望!)修改这个。在此期间,请查看Boost.Range及其各种用途,尽管我不知道标准算法的接口。

答案 2 :(得分:1)

我见过这种情况的唯一情况是那些基于boost::range库的算法,但即使这些算法也没有实际修改标准算法,如std::copystd::remove_if - - 需要编写有问题的算法以利用这样的范围包装器。

有关示例,请参阅Boost String Algorithms库。

答案 3 :(得分:0)

我将添加自己的发现:Adobe源库(来自boost取代算法部分的rangex) ASL