c++ - 如何在没有其他变量的情况下获得当前位置?

标签 c++ vector iterator

很多时候在创建语法列表(带逗号)时,我使用类似于以下的代码:

std::stringstream list;
int i = 0;
for (auto itemListIt = itemList.begin(); itemListIt != itemList.end(); itemListIt++)
{
    list << *itemListIt;
    if (i < itemList.size() - 1) list << ", ";
    i++;
}

是否有更简洁的方法来做到这一点,也许没有额外的变量 - 'i'?

最佳答案

为什么不测试你真正感兴趣的东西呢? “在这个元素之后还有另一个元素吗?”。

std::stringstream list;
for (auto it = roomList.begin(); it != itemList.end(); it++)
{
    list << *it;
    if ( it+1 != itemList.end() ) list << ", ";
}

关于c++ - 如何在没有其他变量的情况下获得当前位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9715507/

相关文章:

c++ - 将攻击性句子列入黑名单

c# - 旋转矢量3D

c++ - 保持数据迭代器的 vector

rust - 如何使用可能失败的函数调用 Iterator .map()?

java - 增强的 For-Loop 在自定义集合实现 Iterable 接口(interface)时引发编译错误

C++ 命名空间 "hiding"出现在 Eclipse 解析器中

c++ - 当我们可以使用普通函数修改静态数据成员时,静态成员函数的需求是什么?

C++ 模板函数,可以采用 Eigen::vector 或 std::vector

c++ - 有什么方法可以通过其成员名称索引hana适应的结构?

c++ - T "decaying"数组的函数参数到指向 T 的指针?