作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
不确定我是否在某处有一个简单的拼写错误,但我在对元组的双端队列进行排序时遇到了问题。
所以,我的双端队列看起来像这样:
std::deque<boost::tuple<unsigned int, unsigned int> > messages;
然后我有电话要排序:
sort(messages.begin(), messages.end(), msg_sort_criteria);
还有我的排序函数:
bool msg_sort_criteria(boost::tuple<unsigned int, unsigned int> lhs, boost::tuple<unsigned int, unsigned int> rhs)
{
return boost::get<1>(lhs) < boost::get<1>(rhs);
}
我在 STL_heap.h 和 STL_algo.h 中遇到错误。例如,
Called object type '
<bound member function type>
' is not a function or function parameter.
编辑:
澄清一下,这一切都发生在类的私有(private)成员中。
class Messages::MessageImpl{
private:
std::deque<boost::tuple<unsigned int, unsigned int> > messages;
bool msg_sort_criteria(boost::tuple<unsigned int, unsigned int> lhs, boost::tuple<unsigned int, unsigned int> rhs)
{
return boost::get<1>(lhs) < boost::get<1>(rhs);
}
void fn()
{
sort(msg_queue_.begin(), msg_queue_.end(), msg_sort_criteria);
}
}
最佳答案
主要是从评论中转发。
将您的实现更改为:
class Messages::MessageImpl{
private:
std::deque<boost::tuple<unsigned int, unsigned int> > messages;
static bool msg_sort_criteria(boost::tuple<unsigned int, unsigned int> lhs,
boost::tuple<unsigned int, unsigned int> rhs)
{
return boost::get<1>(lhs) < boost::get<1>(rhs);
}
void fn()
{
sort(msg_queue_.begin(), msg_queue_.end(), &MessageImpl::msg_sort_criteria);
}
};
关于c++ - boost 元组的排序双端队列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11528170/
我是一名优秀的程序员,十分优秀!