【发布时间】:2009-08-03 13:15:09
【问题描述】:
我的代码如下所示:
struct First
{
int f1;
int f2;
};
struct Second
{
First s1;
int s2;
};
std::vector < Second > secondVec;
Second sec;
sec.s1 = First();
secondVec.push_back(sec);
secondVec.push_back(sec);
std::vector < First > firstVec;
firstVec.reserve(secondVec.size());
for (std::vector < Second >::iterator secIter = secondVec.begin();
secIter != = secondVec.end();
++secIter)
{
firstVec.push_back(secIter->s1);
}
我想用一个简单的 stl 函数替换这个丑陋的 for 循环,该函数也许可以执行等效的过程。我在想也许std::transform 可以在这里帮助我,但我不确定如何写。
如果 boost 在这里有什么可以提供的,我也很感兴趣。
【问题讨论】: