我喜欢一致性。我最近问了使用std::begin
vs. eg的问题std::vector<int>::begin
,一致的决定似乎是使用前者,因为它更通用。但我想我在泥泞中找到了一根棍子。有时,你想传达你不会在循环遍历容器时更改容器,因此调用std::vector<int>::cbegin
. iter = v.cbegin()
如果您有时这样做而其他时间这样做,它会使您的代码非常不对称iter = begin(v)
。std::begin
有没有办法解决这种缺乏对称性的问题,鉴于这些知识,你还会推荐吗?为什么C++没有std::cbegin
?
问问题
1665 次