Объясните, что значит string(1, char)

153
26 октября 2018, 07:00

Прохожу курс по с++ и там в рекомендуемом решении задачи написано:

template <typename RandomIt>
pair<RandomIt, RandomIt> FindStartsWith(
RandomIt range_begin, RandomIt range_end, char prefix) {
// Все строки, начинающиеся с '<prefix>', больше или равны строке "<prefix>"
auto left = lower_bound(range_begin, range_end, string(1, prefix));
  // Составим следующий в алфавите символ.
  // Не страшно, если prefix = 'z':
  // в этом случае мы получим следующий за 'z' символ в таблице символов
  char next_prefix = static_cast<char>(prefix + 1);
 // Строка "<next_prefix>" в рамках буквенных строк
  // является точной верхней гранью
  // множества строк, начнающихся с '<prefix>'
  auto right = lower_bound(range_begin, range_end, string(1, next_prefix));
  return {left, right};
}

Вот и вызывает у меня сомнения string(1, prefix) оттуда, оно превращает char в строку или что?

Сама задача:

Напишите функцию FindStartsWith: принимающую отсортированный набор строк в виде итераторов range_begin, range_end и один символ prefix;

возвращающую диапазон строк, начинающихся с символа prefix, в виде пары итераторов.

Спасибо

Answer 1

оно превращает char в строку или что?

Да.

std::string(число, символ) создает строку, в которой символ повторен число раз.

Соответственно, std::string(1, символ) создает строку из одного символа.

Эту информацию можно легко найти самому.

READ ALSO
простое наследование JAVA

простое наследование JAVA

Суть проста, есть два класса: Main и Field

173
Внесение информации в базу данных и вытягивание оной из неё же

Внесение информации в базу данных и вытягивание оной из неё же

Стоит задача: поднять сервер с бд, с несколькими таблицами, в которые юзеры будут заносить значенияВ дальнейшем эти значения нужно будет...

172