例如:
for( auto &iter: item_vector ) {
if(not_on_the_last_element) printf(", ");
}
或
for( auto &iter: skill_level_map ) {
if(not_on_the_last_element) printf(", ");
}
最佳答案
你真的不能。这就是 range-for 的意义所在,您不需要迭代器。但是,如果不是第一个,您可以更改有关如何打印逗号的逻辑来打印它:
bool first = true;
for (auto& elem : item_vector) {
if (!first) printf(", ");
// print elem
first = false;
}
如果那是循环的意图。或者您可以比较地址:
for (auto& elem : item_vector) {
if (&elem != &item_vector.back()) printf(", ");
// ...
}
关于c++ - 使用 foreach 语法进行迭代时如何检查我是否在最后一个元素上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27585021/