Я пытаюсь понять строку с объявлением строки

#c

#c

Вопрос:

 string Possible::str(int width) const {
    string s(width, ' '); // <-- this line
    int k = 0;
    for (int i = 1; i <= 9; i  ) {
        if (is_on(i)) s[k  ] = '0'   i;
    }
    return s;
}
  

Что это значит? строка s(ширина, ‘ ‘);

Комментарии:

1. заполняет строку width копиями пробела.

2. Это один из std::string конструкторов для построения строки повторяющихся символов.

3. @ThomasMatthews это ответ с моей точки зрения!

4. Спасибо, ребята! Эта ссылка помогла

Ответ №1:

Это означает, что символ (пробел) будет повторяться (ширина) раз.

Так, например, если ширина равна 5, вывод этой строки будет состоять из 5 пробелов.

Проверьте этот пример об использовании std::string конструкторов.

Ответ №2:

Это один из std::string конструкторов для построения строки повторяющихся символов.

Ответ №3:

Эта строка объявляет и определяет объект s типа string и указывает (width, ' ') в качестве инициализатора для этого нового объекта. Этот инициализатор приведет к вызову соответствующего string конструктора с двумя параметрами. Этот конструктор инициализирует объект s .

Если string на самом деле std::string , то это вызовет string::string(size_t n, char c) конструктор. Он будет инициализироваться s строкой длины width , состоящей полностью из пробелов.