Комментарии 8
3 абзаца и 3 предложения? Это самое короткое интервью и статья на хабре, которую я когда-либо видел)
ужасное интервью. понятно, что проблема не ваша, оно такое в оригинале, но зачем такое переводить?
* первый вопрос, почему цикл
* Второй вопрос, про оператор «изменяется по направлению к»,
* Пятый вопрос «как мне пройтись итератором по всем словам в строке, если 'слово' это последовательность символов, разделённая пробелами». Ответ — «stringstream, но как вы определяете слово?»
Видно, что вопросы явно дальше заголовка не читались.
* первый вопрос, почему цикл
for(...) if (data[c] > 128) sum+=data[c];
работает в шесть раз быстрее на отсортированном массиве (правильный ответ: из-за предсказания ветвлений). Ответ — почему sort() быстрее работает на отсортированном массиве. Дык, это ж другой вопрос. Очевидно же, что сортировка отсортированного может быть быстрой. Пузырёк, например, может за O(N) работать на отсортированом массиве, и что?* Второй вопрос, про оператор «изменяется по направлению к»,
while (x --> 0) {...}
. Ответ — рассмотрим if (p-->m == 0) f(p);
. Но это ж не «изменяется по направлению к».* Пятый вопрос «как мне пройтись итератором по всем словам в строке, если 'слово' это последовательность символов, разделённая пробелами». Ответ — «stringstream, но как вы определяете слово?»
Видно, что вопросы явно дальше заголовка не читались.
У нашей Мэри был баран.
Добавлю про оператор "-->". Его можно использовать в цикле while следующим образом:
Получается идиома «делать, пока i стремится к нулю».
size_t i = 10;
while (i --> 0) {
std::cout << i << std::endl;
}
Получается идиома «делать, пока i стремится к нулю».
Вот только «пока i стремится к нулю» не должно учитывать ноль. А это конструкция будет работать и при i==0
На самом деле любой мало-мальски грамотный автоформаттер разделит это непотребство на более логичное i-- > 0
и нет тут никаких идиом. Зато есть очень полезное свойство для for
for(auto i = container.size(); i-- > 0;){}
Польза от auto
здесь в том, что контейнер не обязательно из STL, a, например, из Qt, у которых .size()
возвращает int
.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Бьерн Страуструп отвечает на топ-5 вопросов по C++ со Stack Overflow