【发布时间】:2016-05-31 23:58:49
【问题描述】:
我最近阅读的一些帖子声称for(const auto &it : vec) 与使用更长的迭代器语法for(std::vector<Type*>::const_iterator it = vec.begin(); it != vec.end(); it++) 相同。但是,我发现this post 说它们不一样。
目前,我正在尝试擦除 for 循环中的元素,在使用后,想知道是否有任何方法可以将 const auto &it : nodes 转换为 std::vector<txml::XMLElement*>::iterator?
有问题的代码:
std::vector<txml2::XMLElement *> nodes;
//...
for (const auto &it : nodes)
{
//...
nodes.erase(it);
}
我很确定我可以将 std::vector<txml2::XMLElement*> 重写为 const 指针,但我不希望这样做,因为这段代码目前只是用于调试。
【问题讨论】:
标签: c++ c++11 iterator constants auto