使用不带std :: copy的insert迭代器

时间:2013-10-09 08:04:01

标签: c++ iterator

我有一个插入迭代器和我要插入的元素的迭代器,但我不允许使用std::copy

这是我在c ++参考页面上找到的:

std::copy (bar.begin(),bar.end(),insert_it);

这也是我想做的,但我不能使用std::copy。还有另一种方式吗?

2 个答案:

答案 0 :(得分:2)

auto first = bar.begin();
auto last = bar.end();
while (first!=last)
{
  *insert_it = *first;
  ++insert_it;
  ++first;
}

答案 1 :(得分:0)

您提供的代码将内容从bar.begin()移动到bar.end()到insert迭代器。我对您使用的术语insert感到困惑,而std::copy不会插入任何内容,只是复制内容。

要在容器中实际插入元素,您可以使用:

your_container.insert(insert_it, bar.begin(),bar.end());

您可以在此处找到std::vector http://en.cppreference.com/w/cpp/container/vector/insert/insert/

的示例

希望这有帮助, Raxvan。