Insertadores para STL stack y priority_queue

std::vector, std::list ystd::deque tenerstd::back_inserterystd::set tienestd::inserter.

porstd::stack ystd::priority_queue Supongo que el insertador equivalente sería unpush() pero parece que no puedo encontrar la función correcta para llamar.

Mi intención es poder usar la siguiente función con el iterador de inserción correcto:

#include <string>
#include <queue>
#include <iterator>

template<typename outiter>
void foo(outiter oitr)
{
   static const std::string s1 ("abcdefghji");
   static const std::string s2 ("1234567890");
   *oitr++ = s1;
   *oitr++ = s2;
}

int main()
{
   std::priority_queue<std::string> spq;
   std::stack<std::string> stk;

   foo(std::inserter(spq));
   foo(std::inserter(stk));

   return 0;
}

Respuestas a la pregunta(1)

Su respuesta a la pregunta