Mam projekt Visual Studio 2008 C++, w którym chciałbym skopiować jeden element struct wektora tego typu struct do nowego wektora. Na przykład:wybieranie pojedynczego elementu z każdej struktury w std :: vector do innego wektora
struct Foo {
int a;
long b;
};
std::vector<Foo> v1;
std::vector<long> v2;
for(std::vector<Foo>::const_iterator it = v1.begin(); it != v1.end(); ++it)
{
v2.push_back(it->b);
}
Czy istnieje lepszy/bardziej elegancki sposób niż to?
Dzięki, PaulH
Oczywiście, istnieją inne techniki, takie jak Boost.Lambda, lub pisanie transformatorów ogólnego zastosowania i używanie ich w segregatorach ze standardowej biblioteki, ale żadna z tych technik nie może być uważana za bardziej elegancka niż w oryginalnym kodzie . –
Można również użyć 'std :: bind (& Foo :: b)', aby uzyskać funkcję sygnatury 'long & (Foo &)', jak sądzę. –
Próbowałem całkowicie zablokować "bind" z mojej pamięci, choć obawiam się, że niektóre blizny pozostaną na zawsze. : -O –