dl
dl_range_fill.h
浏览该文件的文档.
1
12#pragma once
13
14//#include <algorithm>
15//#include <cmath>
16//
17//#include "math/dl_algorithm.h"
18
20namespace dl::Fill
21{
25template<typename C, typename T>
26void Value(C& c, const T& v)
27{
28 for (auto& iter : c)
29 iter = v;
30}
31
34template<typename C, typename T>
35void Zero(C& c)
36{
37 for (auto& iter : c)
38 iter = 0;
39}
40
43template<typename C, typename T>
44void Sequence(C& c, const T& a, const T& d = 1)
45{
46 size_t i = 0;
47 for (auto& iter : c)
48 {
49 iter = a + d * i;
50 ++i;
51 }
52}
53
56template<typename T, size_t N>
57constexpr Array<T, N> ArrayN(const T& v)
58{
59 Array<T, N> ret;
60 for (size_t i = 0; i < N; ++i)
61 {
62 ret[i] = v;
63 }
64 return ret;
65}
66
69template<std::size_t N, typename T>
71{
73}
74
77template<typename T>
78std::vector<T> VectorN(const T& v, size_t n)
79{
80 return { n, v };
81}
82
83}
填充算法(不改变容器大小)
void Value(C &c, const T &v)
填充同一值
std::vector< T > VectorN(const T &v, size_t n)
填充vector
void Sequence(C &c, const T &a, const T &d=1)
填充等差数列
constexpr Array< T, N > ArrayN(const T &v)
填充array
void Zero(C &c)
填充0
PointU Size