27template<
typename T,
typename V>
30 auto iter = find(container.rbegin(), container.rend(), a);
31 if (iter == container.rend())
33 container.erase(container.begin(), iter.base());
43template<
typename T,
typename V>
46 auto iter = find(container.rbegin(), container.rend(), a);
47 if (iter == container.rend())
49 container.erase(iter.base(), container.end());
58template<
typename T,
typename V>
61 auto iter = find(container.begin(), container.end(), a);
62 if (iter == container.end())
64 container.erase(iter, container.end());
76 auto iter_cur = container.begin();
77 auto iter_acur = sub.begin();
78 auto iter_delete = iter_cur;
79 bool isSuccess =
false;
80 for (iter_cur; iter_cur != container.end();)
82 while (*iter_cur == *iter_acur)
86 if (iter_acur == sub.end())
95 iter_acur = sub.begin();
96 iter_delete = iter_cur;
99 container.erase(iter_delete, container.end());
107 for (
auto iter = a.begin(); iter != a.end();)
110 iter = a.erase(iter);
137 auto iter0 = std::search(a.begin(), a.end(), b.begin(), b.end());
138 if (iter0 == a.end())
141 std::advance(iter1, b.size());
142 a.erase(iter0, iter1);
166template<
typename C,
typename V>
169 for (
auto iter = container.begin(); iter != container.end(); ++iter)
173 container.erase(iter);
bool Equal(const C &container, const V &v)
判断容器任意元素等于某值
size_t AllSub(T &a, const T &b)
移除子串,所有
bool First(C &container, const V &v)
移除第一个找到的值
bool TailFromFirst(T &container, const V &a)
从容器container中移除 最开始 匹配到的a元素 之后(包含a)的所有元素,如果没有匹配到,则什么都不做。
void Match(T &a, const T &b)
从容器a中移除 存在于容器b的元素
void TailFromFirstSub(T &container, const T &sub)
从容器container中移除 最开始 匹配到的子容器a 之后(不包含a)的所有元素,如果没有匹配到,则什么都不做。
bool HeadSub(T &a, const T &b)
移除子串,第一个
bool TailFromLast(T &container, const V &a)
从容器container中移除 最后 匹配到的a元素 之后(不包含a)的所有元素,如果没有匹配到,则什么都不做。
bool HeadFromLast(T &container, const V &a)
从容器container中移除 最后 匹配到的a元素 之前(包含a)的所有元素,如果没有匹配到,则什么都不做。