24template<
typename C,
typename T>
30template<
typename C,
typename T>
41template<
typename C,
typename T>
47template<
typename C,
typename T>
58template<
typename C,
typename T>
64template<
typename C,
typename T>
79 iter = std::round(iter);
98 iter = std::floor(iter);
115 iter = std::ceil(iter);
129template<
typename C,
typename T>
130constexpr void Clamp(
C& c,
const T& v_min,
const T& v_max)
133 iter = std::clamp(iter, v_min, v_max);
135template<
typename C,
typename T>
137constexpr C Clamp(
const C& c,
const T& v_min,
const T& v_max)
140 Clamp(ret, v_min, v_max);
147template<
typename C,
typename T>
156template<
typename C,
typename T>
190 iter = std::abs(iter);
207template<
typename C,
typename V>
223template<
typename C,
typename V>
226 for (
auto& iter : container)
246template<
typename C,
typename V>
249 for (
auto iter = container.begin(); iter != container.end();)
252 iter = container.erase(iter);
262template<
typename C,
typename V>
280template<
typename C,
typename C1>
284 for (
auto iter = container.begin(); iter != container.end();)
286 auto iter1 = find(c_compare.begin(), c_compare.end(), *iter);
287 if (iter1 == c_compare.end())
289 iter = container.erase(iter);
304template<
typename C,
typename V>
319template<
typename C,
typename V>
bool Equal(const C &c, const V &v)
判断容器所有元素都等于某值
void Erase(C &container, const V &v)
移除容器所有元素都等于某值
void Delete(C &c, bool clear=true)
对容器每个元素进行delete操作
void Saturate(C &c)
取[0, 1]
void Replace(C &c, const V &v, const V &v_new)
替换容器所有元素都等于某值
void Sub(C &c, const T &v)
减
size_t EraseNot(C &container, const C1 &c_compare)
移除容器所有元素 不在比较的容器
void Mul(C &c, const T &v)
乘
void Add(C &c, const T &v)
加
constexpr void Clamp(C &c, const T &v_min, const T &v_max)
取[min, max]
constexpr void ClampFloor(C &c, const T &v_min)
取[min, +∞)
bool NotEqual(const C &container, const V &v)
判断容器所有元素都 不等于某值
constexpr T saturate(const T &x)
限制数值到 [0, 1]