std::vector
, std::list
y std::deque
ont std::back_inserter
y std::set
hat std::inserter
.
Für std::stack
y std::priority_queue
Ich würde annehmen, dass der entsprechende Inserter ein push()
aber ich kann die richtige Funktion nicht finden, die ich aufrufen muss.
Ich möchte die folgende Funktion mit dem richtigen Insert-Iterator verwenden können:
#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;
}