цикл for для Qt 'foreach' в C ++ - PullRequest
       33

цикл for для Qt 'foreach' в C ++

45 голосов
/ 21 апреля 2009

Что лучше (или быстрее): цикл C ++ for или оператор foreach, предоставляемый Qt? Например, следующее условие

QList<QString> listofstrings;

Что лучше?

foreach(QString str, listofstrings)
{
    //code
}

или

int count = listofstrings.count();
QString str = QString();
for(int i=0;i<count;i++)
{
    str = listofstrings.at(i);
    //Code
}

Ответы [ 11 ]

0 голосов
/ 21 апреля 2009

Вы можете посмотреть на функцию STL for_each . Я не знаю, будет ли он быстрее двух представленных вами вариантов, но он более стандартизирован, чем foret в Qt, и позволяет избежать некоторых проблем, с которыми вы можете столкнуться при использовании обычного цикла for (а именно: индексация за пределами границ и трудности с переводом цикла в другую структуру данных).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...