本文介绍了C ++函数对象返回`P-> first`和'P->秒'的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
有一个返回内建函数对象 P->首先
和 P->第二个
,所以我可以高兴地写
Is there a builtin function object that returns p->first
and p->second
, so that I can happily write
transform(m.begin(),m.end(),back_inserter(keys),get_first);
transform(m.begin(),m.end(),back_inserter(vals),get_second);
基于STL的解决方案是最好的,升压
解决方案是第二个最好的。
STL-based solution is the best, boost
solution is second best.
是啊,我知道的boost ::拉姆达
,我不想开始使用它。
Yeah, I know boost::lambda
, I don't want to start using it.
推荐答案
有非标准的扩展<$c$c>g++$c$c>和名为 select1st
和 select2nd
。因此,有可能是没有在STL为。
There are nonstandard extensions to g++
and SGI
called select1st
and select2nd
. So there's probably nothing in the STL for that.
Boost的绑定也能做到这一点,给它一个指向正确的成员函数
Boost's bind can also do that, give it a pointer to the correct member function
boost::bind(&std::map<string,string>::value_type::second,_1)
这篇关于C ++函数对象返回`P-&GT; first`和'P-&GT;秒'的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!