本文介绍了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++和名为 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;秒'的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

11-01 16:47