繁体   English   中英

有没有办法使用独立的`std :: begin`和const_iterator?

[英]Is there a way to use standalone `std::begin` and for a const_iterator?

我喜欢一致性。 我最近问过使用std::begin与例如std::vector<int>::begin ,并且一致的决定似乎是使用前者,因为它更通用。 但我想我在泥里找到了一根棍子。 有时候,你想传达的是当你循环它时不会改变容器,因此调用std::vector<int>::cbegin 如果你有时做iter = v.cbegin()而其他时候做了iter = begin(v)它会使你的代码非常不对称。 有没有办法解决这种缺乏对称性的问题,你是否还会建议std::begin给出这种知识? 为什么C ++没有std::cbegin

C ++ 14已经cbegin / cend /等。 它开始在主要编译器中可用。

例如,当您的容器被声明为“const”时,它将作为foo(const std::vector<int> & v)传递给函数,然后std::begin将实际返回一个const_iterator

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM