gpt4 book ai didi

c++ - boost 元组的排序双端队列

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:49:09 24 4
gpt4 key购买 nike

不确定我是否在某处有一个简单的拼写错误,但我在对元组的双端队列进行排序时遇到了问题。

所以,我的双端队列看起来像这样:

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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com