vector<Wrap>
을 v
과 동일한 값으로 생성하려고합니다. 나는 아래의 조합을 시도했지만 작동하지 않았다! 부스트 람다를 사용하여 구조체의 멤버를 설정
using namespace std;
struct Wrap
{
int data;
//Other members
};
int main()
{
int a[10] = {2345,6345,3,243,24,234};
vector<int> v(&a[0],&a[10]);
Wrap w;
//Populate other members of w
vector<Wrap> vw;
using namespace boost::lambda;
//transform(v.begin(),v.end(), back_inserter(vw), (bind(&Wrap::data,&w,_1), boost::lambda::constant(w)));
//transform(v.begin(),v.end(), back_inserter(vw), bind(&Wrap::data,&w,_1), boost::lambda::constant(w));
//transform(v.begin(),v.end(), back_inserter(vw), ((w.data = _1), boost::lambda::constant(w)));
//transform(v.begin(),v.end(), back_inserter(vw), ((w.data = _1), w));
cout << vw.size() << endl;
BOOST_FOREACH(Wrap w, vw)
{
cout << w.data << endl;
}
}
주
: 아직업데이트 C++ 03 괜찮에서 작동하는 모든 청소 솔루션을 C++ (11)를 사용할 수 없습니다.
struct Wrap
{
Wrap(int data): data(data) {}
int data;
};
을 그리고 당신은 단순히이 수행 할 수 있습니다 : 부스트 람다에게
XY 질문입니까? '벡터'을 만들거나'boost :: lambda'를 사용하는 것이 목표입니까? –
Pubby
'벡터'을 생성하십시오. –
balki