【发布时间】:2011-05-06 03:38:26
【问题描述】:
std::vector、std::list 和 std::deque 有 std::back_inserter,std::set 有 std::inserter。
对于std::stack 和std::priority_queue,我假设等效的插入器是push(),但我似乎找不到要调用的正确函数。
我的意图是能够将以下函数与正确的插入迭代器一起使用:
#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;
}
【问题讨论】:
标签: c++ stl containers priority-queue inserter