Прохожу курс по с++ и там в рекомендуемом решении задачи написано:
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, в виде пары итераторов.
Спасибо
оно превращает char в строку или что?
Да.
std::string(число, символ)
создает строку, в которой символ
повторен число
раз.
Соответственно, std::string(1, символ)
создает строку из одного символа.
Эту информацию можно легко найти самому.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Какие существуют виды рекламных бордов и как выбрать подходящий?
Стоит задача: поднять сервер с бд, с несколькими таблицами, в которые юзеры будут заносить значенияВ дальнейшем эти значения нужно будет...