在Qt中,我怎么知道我是foreach中的最后一个对象

时间:2012-03-19 15:45:13

标签: c++ qt qt4

我想知道是否有人知道Qt中的库方法或函数会告诉你何时击中了foreach中的最后一个对象。

下面我在一个字符串列表上滚动,我在下面编写了一个名为“isLast()”的虚构方法:

foreach( QString a_string, string_list )
{
    if ( a_string.isLast() )   // does something like this exist?
    {
    ...
    }
}

有没有人知道是否存在类似“isLast()”的内容?

谢谢, 韦斯

2 个答案:

答案 0 :(得分:2)

我没有在QT周围看到isLast()式的功能。你最好的选择可能是混合一点老派的反逻辑:

int str_count = 0;
int str_list_last_elem = string_list.size()-1;

foreach(QString a_string, string_list) {
    str_count++;
    if (str_count == str_list_last_elem) {
        ...
    }
}

答案 1 :(得分:2)

如果string_list中的字符串都具有唯一值,则可以执行以下操作:

foreach(QString a_string, string_list) {
    if(a_string == string_list.last()){
        // it's the last string
    }

    ...
}

否则你将不得不使用@ascentury建议的某种计数器。