小编Ban*_*tak的帖子

使用nullptr而不是end iterator

我想知道是否可以使用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没有复制构造函数.

c++ stl

0
推荐指数
1
解决办法
1675
查看次数

标签 统计

c++ ×1

stl ×1