我正在尝试将boost::bind
与std::sort
函数一起使用。我想将sort绑定到不带参数的函数中,并指定要排序的int数组。
我遇到了在绑定排序时指定什么作为模板参数的问题,如果我使用的是标准容器,我只会使用std::container<int>::iterator
但是因为我使用的是数组,所以无法计算用什么。
以下是一些说明我的编译问题的代码:
const int NUM_VALUES = 100;
int nums[NUM_VALUES];
for (int i=0; i<NUM_VALUES; ++i)
{
nums[i] = NUM_VALUES - i;
}
boost::function<void()> sortHolder = boost::bind(&std::sort<type?>, nums, nums+NUM_VALUES);
任何人都知道在这里使用哪些模板参数?任何其他讨论也欢迎。
答案 0 :(得分:2)
当您希望将“迭代器”放入数组时,可以使用指向数组中元素的指针。这样的指针可以用作随机访问迭代器:
boost::function<void()> sortHolder =
boost::bind(&std::sort<int*>, nums, nums + NUM_VALUES);