cpp-ru / ideas

Идеи по улучшению языка C++ для обсуждения
https://cpp-ru.github.io/proposals
Creative Commons Zero v1.0 Universal
89 stars 0 forks source link

Добавить метод split для std::string #250

Closed apolukhin closed 3 years ago

apolukhin commented 3 years ago

Перенос предложения: голоса +14, -1 Автор идеи: Грандмастер Б.

При работе со строками часто нужно необходимо разбить строку на отдельные слова,но так как split отсутствует в std, каждый велосипедирует как может

apolukhin commented 3 years ago

yndx-antoshkka, 19 декабря 2017, 16:57 Предложите пожалуйста интерфейс, который всем понравится.

zamazan4ik@tut.by, 21 декабря 2017, 2:56 yndx-antoshkka, из Boost.Algorithm почему никто не брал? Неужели пропозалов не было ?:-)

Antervis, 20 декабря 2017, 6:21 в ranges-v3 есть split

zamazan4ik@tut.by, 21 декабря 2017, 2:55 1) Не хотелось бы иметь как метод класса std::string 2) Я за то вариант из Boost.Algorithm.

yndx-antoshkka, 13 июня 2018, 12:20 Появилось предложение на добавление split и join: http://wg21.link/p0540

yndx-antoshkka, 29 ноября 2018, 17:05 Сделали в C++20 с принятием ranges:

string str{"the quick brown fox"};
for (word : str | view::split(' ') | view::common) {
  cout << string{begin(word), end(word)) << '*';
}

Выведет:

the*quick*brown*fox*

Сергей Рыбин, 1 декабря 2019, 20:06 Обновлено 30 ноября 2018, 16:30

Я оказывается уже много лет использую самописный обобщенный split похожий на splitc\splitf из p0540.