没懂。
cend很重,是要每次取值,取的开销大。
!能避免每次取值的需求吗?这是迭代器失效的问题。类似volatile
更麻烦的写法是分两行,先把cend取出来,命名E,再跟E比较。
表明此循环不更改容器。
LLVM的编程guideline见到,这么写的。
【 在 hgoldfish 的大作中提到: 】
: 这种写法:
: for (auto itor = map.cbegin(); itor != map.cend(); ++itor) {}
: 如果是内置的类型还行,碰到有些复杂的类型,比如我给 lmdb 弄了个迭代器,它的 cbegin() 和 cend() 都特别重,你上面那样写就很浪费时空效率。所以我给迭代器整了一个 operator!(),写起来既简洁又高效:
: ...................
--
FROM 61.185.187.*