Member 13010616 Ответов: 2

У меня возникли проблемы с : смыслом.


что означает точка с запятой в этом примере >> for (const auto& value : 1st)

#include <initializer_list>
using namespace std;
int makeSum(initializer_list<int> 1st)
{  int total= 0;
for (const auto& value : 1st) { //Right here
total += value;  }
return total;  }


Что я уже пробовал:

Я пытался спросить Здесь, снова и снова.

nv3

И замените это "1st" на "lst" - в C++ идентификаторы не начинаются с цифры! Это выглядит почти так же, но имеет большое значение. Вот что происходит, когда человек просто копирует вещи и не пытается понять, что происходит.

2 Ответов

Рейтинг:
2

Richard MacCutchan

Как говорит Дэйв, "перестань быть вампиром-помощником". Идти к Справочник По Языку C++ | Microsoft Docs[^] и приложите усилия, чтобы действительно выучить язык.


Рейтинг:
1

Dave Kreskowiak

Перестань быть вампиром-помощником. Вы либо учитесь делать свои собственные исследования, либо вы находитесь в неправильном классе. Написание кода требует от вас много исследований, если вы собираетесь выжить в этом бизнесе.

Теперь, опять же, это двоеточие, а не точка с запятой.

Далее, если бы вы погуглили "C++ for const auto", то обнаружили бы, что перед вами цикл for на основе диапазона.

Чтение документации на range-based for loop[^], вы бы увидели, что выражение после двоеточия, как ожидается, будет "выражением диапазона" или чем-то, что возвращает диапазон объектов. Это также известно как "список", который вы должны передать, как описано в заголовке функции makeSum.


CPallini

5.