Tôi đoán đây là một câu hỏi đơn giản. Tôi cần phải làm một cái gì đó như thế này:std :: back_inserter cho std :: set?
std::set<int> s1, s2;
s1 = getAnExcitingSet();
std::transform(s1.begin(), s1.end(), std::back_inserter(s2), ExcitingUnaryFunctor());
Tất nhiên, std::back_inserter
không hoạt động vì không có push_back
. std::inserter
cũng cần trình lặp? Tôi đã không sử dụng std::inserter
vì vậy tôi không chắc chắn phải làm gì.
Có ai có ý tưởng không?
Tất nhiên, tùy chọn khác của tôi là sử dụng vectơ cho
s2
và sau đó sắp xếp lại sau. Có lẽ đó là tốt hơn?
Hoạt động cho std :: bản đồ cũng như (bạn đã tiết kiệm thời gian của tôi, cảm ơn bạn). – FreeNickname
Vì 'inserter (vec, vec.end())' cũng hoạt động cho các vectơ, tại sao có ai sử dụng back_inserter ngay từ đầu? – NHDaly
@NHDaly: vì back_inserter nhanh hơn – marton78