MSTL 1.4.0
A Modern C++ Library with extended functionality, web components, and utility libraries
载入中...
搜索中...
未找到
string_util.hpp
1#ifndef MSTL_CORE_STRING_STRING_UTIL_HPP__
2#define MSTL_CORE_STRING_STRING_UTIL_HPP__
3#include "../container/vector.hpp"
5#include "string.hpp"
7
8vector<string_view> MSTL_API split(string_view str, string_view delimiters, bool skip_empty = true);
9vector<string> MSTL_API split(const string& str, const string& delimiters, bool skip_empty = true);
10
11string MSTL_API join(const vector<string>& vec, const string& delimiter = "");
12string MSTL_API join_fast(const vector<string>& vec, const string& delimiter = "");
13string MSTL_API join_accumulate(const vector<string> &vec, const string &delimiter = "");
14
15template <typename Pred>
16vector<string> filter_if(const vector<string>& vec, Pred pred) {
17 vector<string> result;
18 _MSTL copy_if(vec.begin(), vec.end(), make_back_inserter(result), pred);
19 return result;
20}
21
22MSTL_ALWAYS_INLINE_INLINE vector<string> filter_empty(const vector<string>& vec) {
23 return filter_if(vec, [](const string& s) { return !s.empty(); });
24}
25
26MSTL_ALWAYS_INLINE_INLINE vector<string> filter(const vector<string>& vec, const string& value_to_remove) {
27 return filter_if(vec, [&value_to_remove](const string& s) {
28 return s != value_to_remove;
29 });
30}
31
32vector<string> MSTL_API unique(const vector<string>& vec);
33vector<string> MSTL_API concatenate(const vector<vector<string>>& vectors);
34
35vector<string> MSTL_API cartesian_product(const vector<string>& vec1,
36 const vector<string>& vec2, const string& connector = "");
37
39#endif // MSTL_CORE_STRING_STRING_UTIL_HPP__
MSTL_NODISCARD constexpr back_insert_iterator< Container > make_back_inserter(Container &x) noexcept
创建back_insert_iterator的辅助函数
#define _MSTL
全局命名空间MSTL前缀
#define MSTL_END_NAMESPACE__
结束全局命名空间MSTL
#define MSTL_BEGIN_NAMESPACE__
开始全局命名空间MSTL
constexpr Iterator unique(Iterator first, Iterator last)
移除连续重复元素
constexpr Iterator2 copy_if(Iterator1 first, Iterator1 last, Iterator2 result, UnaryPredicate unary_pred)
复制满足谓词的元素
MSTL插入迭代器