serna37's Library

Logo

C++ アルゴリズムとデータ構造のライブラリ

View the Project on GitHub serna37/library-cpp

:heavy_check_mark: 文字列を区切る 複数
(library/string/split_multi.hpp)

文字列を区切る 複数

できること

計算量

$O(\vert S \vert \cdot \vert sep \vert)$

使い方

vector<string> list = split_multi(S, ",./");

Verified with

Code

#pragma once
vector<string> split_multi(const string &S, const string &seps) {
    vector<string> res = {""};
    for (auto &&v : S) {
        if (count(all(seps), v)) {
            res.emplace_back("");
        } else {
            res.back() += v;
        }
    }
    return res;
}
#line 2 "library/string/split_multi.hpp"
vector<string> split_multi(const string &S, const string &seps) {
    vector<string> res = {""};
    for (auto &&v : S) {
        if (count(all(seps), v)) {
            res.emplace_back("");
        } else {
            res.back() += v;
        }
    }
    return res;
}
Back to top page