这种写法:
for (auto itor = map.cbegin(); itor != map.cend(); ++itor) {}
如果是内置的类型还行,碰到有些复杂的类型,比如我给 lmdb 弄了个迭代器,它的 cbegin() 和 cend() 都特别重,你上面那样写就很浪费时空效率。所以我给迭代器整了一个 operator!(),写起来既简洁又高效:
for (auto itor = lmdb.begin(); !!itor; ++itor) {}
所以为啥 c++ 标准不搞这种写法呢?
--
FROM 59.61.197.*