C++ で std::regex を使った split
C++ で split が話題になっていたのでやってみた。
#include <regex> #include <iostream> #include <string> #include <vector> int main(){ auto split = [](std::string src, auto pat){ std::vector<std::string> result{}; std::regex reg{pat}; std::copy( std::sregex_token_iterator{src.begin(), src.end(), reg, -1}, std::sregex_token_iterator{}, std::back_inserter(result) ); return result; }; std::string src{"homu,mami,mado"}; for(auto&& str : split(src, ",")){ std::cout << str << std::endl; } return 0; } /* output: homu mami mado */
C++ で split のような関数を標準ライブラリにいれる場合、戻り値型をどうするのかがむずかしいよね…。