amo*_*luc 4 c++ iterator loops set
C++
我有以下迭代循环:
for (it = container.begin(); it != container.end(); ++it) {
//my code here
}
Run Code Online (Sandbox Code Playgroud)
我想尽早结束这个迭代1元素.我尝试了以下但它不编译:
for (it = container.begin(); it != container.end() - 1; ++it) { //subtract 1
//my code here
}
Run Code Online (Sandbox Code Playgroud)
如何才能做到这一点?谢谢.
您可以重复最多的人之前std::prev(s.end())这里s是你的设置,服用该容器是空的可能性护理:
#include <iterator> // for std::prev
auto first = s.begin();
auto last = s.empty() ? s.end() : std::prev(s.end()); // in case s is empty
for (auto it = first; it != last; ++it) { ... }
Run Code Online (Sandbox Code Playgroud)
注意:std::prev需要C++ 11支持.C++ 03替代方案是--s.end().