Ответ 1
set
не имеет push_back
, потому что положение элемента определяется компаратором множества. Используйте std::inserter
и передайте его .begin()
:
std::set<int> s1, s2;
s1 = getAnExcitingSet();
transform(s1.begin(), s1.end(),
std::inserter(s2, s2.begin()), ExcitingUnaryFunctor());
Итератор вставки затем вызовет s2.insert(s2.begin(), x)
, где x
- это значение, переданное итератору при его записи. Набор использует итератор в качестве подсказки, куда вставлять. Вы можете использовать s2.end()
.