Учитывая std::vector
строк, каков наилучший способ удаления всех элементов, начиная с конца, которые являются пустыми (равно пустой строке или пробелу). Удаление элементов должно прекратиться, когда будет найден непустой элемент.
Мой текущий метод (работа в процессе) выглядит примерно так:
while (Vec.size() > 0 && (Vec.back().size() == 0 || is_whitespace(Vec.back()))
{
Vec.pop_back();
}
где is_whitespace
возвращает логическое значение, указывающее, является ли строка пробелом или нет
Я подозреваю, что мой метод будет изменять размер вектора на каждой итерации, и это неоптимально. Может быть, с некоторым алгоритмом это можно сделать за один шаг.
Ввод: {"A", "B", "", "D", "E", "", "", ""}
Желаемый результат: {"A", "B", "", "D", "E"}