Как я могу сказать, что я на последнем объекте в foreach, в Qt - PullRequest
0 голосов
/ 19 марта 2012

Мне было интересно, знает ли кто-нибудь о методе или функции библиотеки в Qt, которая сообщит вам, когда вы нажмете последний объект в foreach.

Ниже я прокручиваю список строк, и я придумал ниже вымышленный метод под названием "isLast ()":

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

Кто-нибудь знает, есть ли что-то вроде "isLast"() "существует?

Спасибо, Уэс

Ответы [ 2 ]

2 голосов
/ 19 марта 2012

Если все строки в string_list имеют уникальные значения, которые вы можете сделать:

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

    ...
}

В противном случае вам придется использовать какой-то счетчик, как подсказывает @ascentury.

2 голосов
/ 19 марта 2012

Я не видел функцию isLast() в стиле QT.Ваш лучший выбор, вероятно, состоит в том, чтобы смешать логику старой школы:

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) {
        ...
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...