标签: insert-iterator

使用.begin()和.end()对于std :: set的std :: inserter有区别吗?

如果it1和it2之间有什么区别?

std::set<sometype> s;

auto it1 = std::inserter(s, s.begin());
auto it2 = std::inserter(s, s.end());
Run Code Online (Sandbox Code Playgroud)

c++ stl stdset insert-iterator

33
推荐指数
2
解决办法
1万
查看次数

使用std :: copy插入STL队列

我想std::copy用于将元素插入到队列中,如下所示:

vector<int> v;
v.push_back( 1 );
v.push_back( 2 );

queue<int> q;

copy( v.begin(), v.end(), insert_iterator< queue<int> >( q, q.front() ) );
Run Code Online (Sandbox Code Playgroud)

但这无法编译,抱怨begin不是其中的一员std::queue.

注意:我也试过std::inserter了 - 这也失败了,这次说'reference'不是'std :: queue'的成员. std::back_inserter并且std::back_insert_iterator还失败,相同的错误.

我错过了一些明显的东西,还是insert_iterator只是不能使用队列?

c++ queue stl copy insert-iterator

16
推荐指数
2
解决办法
1万
查看次数

std :: insert迭代器是否为无序集(或映射)?

std::对于无序集合是否有插入迭代器?据我所知,std::inserter需要一个迭代器参数.这对于无序容器(至少对于boost::unordered_set)是不安全的,因为它们可能在insert操作期间重新分配并且使传递的.begin()迭代器无效.

所以目前我必须通过我自己的迭代器,它实际上是一个boost::function_output_iterator简单调用的仿函数unorderedSet.insert(param1).

为什么是它std::inserter甚至需要hint迭代的说法呢?

c++ invalidation unordered-set insert-iterator

7
推荐指数
1
解决办法
265
查看次数

c ++:创建一个没有#include <iterator>的insert_iterator

在下面的代码中,我创建了一个insert_iterator而不包含迭代器头.怎么可能这个编译?我是c/c ++的新手,所以这可能会有一个很明显的解释.

#include <list>
//#include <iterator>

int main()
{

    std::list<int> mylist(10,1);
    std::insert_iterator<std::list<int> > it(mylist,mylist.begin());

    return(0);
}
Run Code Online (Sandbox Code Playgroud)

c++ insert-iterator

2
推荐指数
1
解决办法
199
查看次数

标签 统计

c++ ×4

insert-iterator ×4

stl ×2

copy ×1

invalidation ×1

queue ×1

stdset ×1

unordered-set ×1