libreria - sort algorithm c++
std:: back_inserter para un std:: set? (1)
set no tiene push_back porque la posición de un elemento está determinada por el comparador del conjunto. Use std::inserter .begin() y páselo .begin() :
std::set<int> s1, s2;
s1 = getAnExcitingSet();
transform(s1.begin(), s1.end(),
std::inserter(s2, s2.begin()), ExcitingUnaryFunctor());
El iterador de inserción llamará a s2.insert(s2.begin(), x) donde x es el valor pasado al iterador cuando se escribe en él. El conjunto usa el iterador como una sugerencia de dónde insertar. Podrías usar bien s2.end() .
Supongo que esta es una pregunta simple. Necesito hacer algo como esto:
std::set<int> s1, s2;
s1 = getAnExcitingSet();
std::transform(s1.begin(), s1.end(), std::back_inserter(s2), ExcitingUnaryFunctor());
Por supuesto, std::back_inserter no funciona porque no hay push_back . std::inserter también necesita un iterador? No he usado std::inserter así que no estoy seguro de qué hacer.
¿Alguien tiene alguna idea?
Por supuesto, mi otra opción es usar un vector paras2 , y luego simplemente ordenarlo más tarde. Tal vez eso es mejor?