c++11中如下lambda操作如何在c++98使用bind2nd实现
功能很简单,主要是为了实现容器的每个元素中一个成员变量的赋值操作,但是这个元素是一个类成员函数,所以我就不会了!其中:m_MessageBox[serviceID]是一个Vector,其元素定义为:
程序代码:
// 消息元素,用于保存Refresh线程中缓存的消息 class MessagBrick { public: HKEX_OMDD::Uint16 MsgType; // Type of message. HKEX_OMDD::Uint16 MsgSeq; // RealSeqNum of message char Content[1000]; // Message Content MessagBrick() { MsgType = 0; MsgSeq = 0; memset(Content, 0, sizeof(Content)); } }; typedef std::vector<MessagBrick> MessVector;
使用迭代器实现如下:
//MessVector::iterator iter = m_MessageBox[serviceID].begin();
//for (; iter != m_MessageBox[serviceID].end(); ++iter)
//{
// iter->MsgSeq = seqID;
//}
C++11使用lambda实现如下:
for_each(m_MessageBox[serviceID].begin(), m_MessageBox[serviceID].end(), [seqID](MessagBrick& element) {element.MsgSeq = seqID; });
请问使用C++98中的bind2nd怎么实现,以前学过,但是很久没用忘记了~
谢谢各位大神!