c++ - 使用 BOOST_FOREACH 时如何测试 vector 中的最后一个元素?

标签 c++ boost boost-foreach

我有一个迭代 vector 。 vector 的最后一个元素是特例,我想单独测试一下。例如,我可能会这样做:

for (iterator = vector.begin(); iterator != vector.end(); ++iterator) {
    if ((iterator + 1) == (vector.end())) {
        ...
    } else {
        ...
    }
}

我想用 BOOST_FOREACH 宏替换迭代器。是否可以对最终元素进行类似的测试?

最佳答案

if(!vec.empty())
{
    BOOST_FOREACH(int e, boost::make_iterator_range(vec.begin(), vec.end()-1))
    {
        // Handle each element but the last
    }

    // Handle last element here
}

关于c++ - 使用 BOOST_FOREACH 时如何测试 vector 中的最后一个元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5959946/

相关文章:

c++ - boost::barrier性能低,等待操作

c++ - 获取指向当前 BOOST_FOREACH 元素的指针

c++ - Doxygen 不会为独立函数生成文档

c++ - 关于复制构造函数和指针

c++ - C++ 或 Qt 中的文件相关异常类

c++ - 如果您在进程崩溃后为其分配内存会怎样?

c++ - boost Asio : Some questions about the tutorial (A synchronous daytime server/client)

c++ - 我应该编写什么代码才能深入了解高级 C++?

c++ - 为什么 BOOST_FOREACH 不完全等同于手工编码?

c++ - 解决问题 # C++98 在使用 Boost 库 1.53 或 1.56 的代码中有效使用 “for_each”