我想知道是否可以使用nullptr或某种通用的end迭代器.
例如:
// a.b->cdef().g->bdf() is a std::map<int, int>
std::unordered_map<int, int> copy(a.b->cdef().g->bdf().begin(), a.b->cdef().g->bdf().end());
Run Code Online (Sandbox Code Playgroud)
您通常会编写以指定初始化新地图的开始和结束.
如果我只想复制整个地图,为什么还需要指定结束标记.
我更喜欢这样的东西:
std::unordered_map<int, int> copy(a.b->cdef().g->bdf().begin(), nullptr);
Run Code Online (Sandbox Code Playgroud)
要么
std::unordered_map<int, int> copy(a.b->cdef().g->bdf().begin());
Run Code Online (Sandbox Code Playgroud)
要么
std::unordered_map<int, int> copy(a.b->cdef().g->bdf().begin(), std::unordered_map::end);
Run Code Online (Sandbox Code Playgroud)
编辑:我将示例从std :: list <int>更改为std :: unordered_map <int,int>.从std :: map到std :: unordered_map没有复制构造函数.