c++ - 检查当前元素是否是集合的最后一个元素

标签 c++ stl iterator

我正在尝试用 C++ 为 set 编写一个打印函数,这就是我写的:

void print_set(set<int> &s)
{
    cout<<"{";
    for(auto it = s.begin() ; it!=s.end() ; ++it)
    {
        cout<<*it;
        if(it!=(s.end()-1)) //shows error here
            cout<<",";
    }
    cout<<"}";
}

但是我遇到了错误。如何检查当前元素是否为最后一个元素?

最佳答案

set 的整数不是随机访问的,因此您不能对它们进行算术运算。请改用 std::prev

关于c++ - 检查当前元素是否是集合的最后一个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21906427/

相关文章:

c++ - 是否有关于面向对象设计问题的真实示例的在线资料?

c++ - qDebug 没有打印包含二进制数据的完整 QByteArray

c++ - 两个 unordered_maps 的交集

由于数据类型错误导致 Java for 循环和编译错误

Java - ListIterator 和 hasNext

c++ - 使用 map 打印生日,最终结果为八进制

c++ - 使用一个堆栈的后序遍历

C++ 包装 C struct *and* and functions

c++ - STL 排序 vector 查找小于或等于给定值的第一个元素

c++ - 范围修剪 View 实现不适用于反向 View