ソースを参照

split_view doesn't allocate new strings

default_compile_flags
vector-of-bool 5年前
コミット
1f14895a8f
1個のファイルの変更12行の追加0行の削除
  1. +12
    -0
      src/dds/util/string.hpp

+ 12
- 0
src/dds/util/string.hpp ファイルの表示

@@ -41,6 +41,18 @@ inline bool starts_with(std::string_view s, std::string_view key) { return s.fin

inline bool contains(std::string_view s, std::string_view key) { return s.find(key) != s.npos; }

inline std::vector<std::string_view> split_view(std::string_view str, std::string_view sep) {
std::vector<std::string_view> ret;
std::string_view::size_type prev_pos = 0;
auto pos = prev_pos;
while ((pos = str.find(sep, prev_pos)) != str.npos) {
ret.emplace_back(str.substr(prev_pos, pos - prev_pos));
prev_pos = pos + sep.length();
}
ret.emplace_back(str.substr(prev_pos));
return ret;
}

inline std::vector<std::string> split(std::string_view str, std::string_view sep) {
std::vector<std::string> ret;
std::string_view::size_type prev_pos = 0;

読み込み中…
キャンセル
保存