|
| template<class Cont> |
| auto | compre (const Cont &cont) -> Comprehension< typename Cont::value_type > |
| | 从容器(左值)创建 Comprehension。
|
| template<class Cont> |
| auto | compre (Cont &&cont) -> Comprehension< typename Cont::value_type > |
| | 从容器(右值)创建 Comprehension(移动元素)。
|
| template<class Cont> |
| auto | compre (const Cont &cont, size_t start_pos, size_t end_pos) -> Comprehension< typename Cont::value_type > |
| | 从容器的子区间(左值)创建 Comprehension。
|
| template<class Cont> |
| auto | compre (Cont &&cont, size_t start_pos, size_t end_pos) -> Comprehension< typename Cont::value_type > |
| | 从容器的子区间(右值)创建 Comprehension(移动元素)。
|
| template<class Iter> |
| auto | compre (Iter beg, Iter end) -> Comprehension< decltype(*beg)> |
| | 从迭代器对创建 Comprehension。
|
| template<class T> |
| Comprehension< T > | compre (std::initializer_list< T > init) |
| | 从初始化列表创建 Comprehension。
|
| std::string | license () |
| | 返回 MIT 许可证全文。
|
| std::string | platform () |
| | 返回当前操作系统平台名称。
|
| std::string | compiler () |
| | 返回当前使用的编译器名称和版本。
|
| std::string | version () |
| | 返回库的版本字符串。
|
| std::string | author () |
| | 返回库的作者。
|
| template<class T = std::string> |
| T | input (const std::string &prompt="", const InputSettings &is=inputSettings) |
| | 从标准输入读取一个值,支持类型模板。
|
| long double | inputNumber (const std::string &prompt="Type a number: ", const InputSettings &is=inputSettings) |
| | 读取一个 long double 类型的数字。
|
| std::string | inputLine (const std::string &prompt="Type a line string: ", const InputSettings &is=inputSettings) |
| | 读取一整行字符串(包含空格)。
|
| long double | inputWithRange (const std::string &prompt="Type a number: ", long double min=DBL_MIN, long double max=DBL_MAX, const InputSettings &is=inputSettings) |
| | 读取一个在指定范围内的数字。
|
| char | inputChar (const std::string &prompt="Type a character: ", const InputSettings &is=inputSettings) |
| | 读取一个字符(忽略前导空白,但不跳过换行符?实际使用 get())。
|
| bool | inputYesOrNo (const std::string &prompt="Type yes or no: ", const InputSettings &is=inputSettings) |
| | 读取一个 y/n 确认,返回布尔值。
|
| std::string | inputAll (const std::string &prompt="", const InputSettings &is=inputSettings) |
| | 读取输入流中剩余的全部内容(直到 EOF)。
|
| template<class Iter> |
| IteratorPair< Iter > | iterpair (Iter beg, Iter end) |
| | 工厂函数,构建 IteratorPair。
|
| template<class C1, class C2> |
| IteratorPair< TiedIterators< typename C1::iterator, typename C2::iterator > > | zip (C1 &c1, C2 &c2) |
| | 将两个容器“拉链”式地绑定在一起,以便同时迭代。
|
| template<class C1, class C2> |
| IteratorPair< TiedIterators< typename C1::const_iterator, typename C2::const_iterator > > | zip (const C1 &c1, const C2 &c2) |
| | 针对两个常量容器的 zip 版本。
|
| template<class C1, class C2> |
| IteratorPair< TiedIterators< typename C1::const_iterator, typename C2::iterator > > | zip (const C1 &c1, C2 &c2) |
| | 针对第一个容器为常量、第二个容器为非常量的 zip 版本。
|
| template<class C1, class C2> |
| IteratorPair< TiedIterators< typename C1::iterator, typename C2::const_iterator > > | zip (C1 &c1, const C2 &c2) |
| | 针对第一个容器为非常量、第二个容器为常量的 zip 版本。
|
| class console::Logging | logger (std::clog, true, Logging::Level::INFO) |
| | 全局默认 logger 实例,启用颜色,级别 INFO。
|
| template<class T, size_t... Dims> |
| double | mean (const MultiArray< T, Dims... > &arr) |
| | 计算 MultiArray 中所有元素的算术平均值。
|
| template<class T, size_t... Dims> |
| double | variance (const MultiArray< T, Dims... > &arr, bool sample=true) |
| | 计算方差。
|
| template<class T, size_t... Dims> |
| double | stddev (const MultiArray< T, Dims... > &arr, bool sample=true) |
| | 计算标准差。
|
| template<class T, size_t N> |
| T | dot (const MultiArray< T, N > &a, const MultiArray< T, N > &b) |
| | 计算两个一维向量的点积。
|
| template<class T, size_t N> |
| double | norm (const MultiArray< T, N > &a) |
| | 计算向量的欧几里得范数(L2 范数)。
|
| template<class T, size_t N> |
| double | cosine (const MultiArray< T, N > &a, const MultiArray< T, N > &b) |
| | 计算两个向量的余弦相似度。
|
| template<class T, size_t N> |
| MultiArray< T, N > | normalize (const MultiArray< T, N > &a) |
| | 将向量归一化为单位向量。
|
| template<class T, size_t N> |
| double | euclidean (const MultiArray< T, N > &a, const MultiArray< T, N > &b) |
| | 计算两个向量的欧几里得距离。
|
| template<class T, size_t N> |
| double | manhattan (const MultiArray< T, N > &a, const MultiArray< T, N > &b) |
| | 计算两个向量的曼哈顿距离(L1 距离)。
|
| template<class T, size_t M, size_t N, size_t K> |
| MultiArray< T, M, K > | matmul (const MultiArray< T, M, N > &A, const MultiArray< T, N, K > &B) |
| | 矩阵乘法(二维)。
|
| template<class T, size_t M, size_t N> |
| MultiArray< T, N, M > | transpose (const MultiArray< T, M, N > &A) |
| | 矩阵转置。
|
| template<class T, size_t N> |
| MultiArray< T, N, N > | identity () |
| | 生成 N×N 的单位矩阵。
|
| template<class T, size_t N> |
| T | trace (const MultiArray< T, N, N > &A) |
| | 计算方阵的迹(对角线元素之和)。
|
| template<class T> |
| MultiArray< T, 3 > | cross (const MultiArray< T, 3 > &a, const MultiArray< T, 3 > &b) |
| | 三维向量的叉积。
|
| template<class T, size_t... Dims> |
| MultiArray< T, Dims... > | clamp (const MultiArray< T, Dims... > &arr, T low, T high) |
| | 将数组每个元素限制在 [low, high] 范围内。
|
| template<class T, size_t... Dims> |
| MultiArray< T, Dims... > | abs (const MultiArray< T, Dims... > &arr) |
| | 计算数组中每个元素的绝对值。
|
| template<class T, size_t... Dims> |
| void | randomize (MultiArray< T, Dims... > &arr, T min=0, T max=100) |
| | 用均匀分布随机数填充数组。
|
| template<class T, size_t... Dims> |
| void | randomize_normal (MultiArray< T, Dims... > &arr, T mean=0, T stddev=1) |
| | 用正态分布随机数填充数组。
|
| template<class T, size_t... Dims> |
| void | linspace (MultiArray< T, Dims... > &arr, T start, T end) |
| | 用线性等间距值填充数组。
|
| template<class T, size_t... Dims> |
| T | product (const MultiArray< T, Dims... > &arr) |
| | 计算所有元素的乘积。
|
| template<class T, size_t... Dims> |
| T | kth_smallest (MultiArray< T, Dims... > arr, size_t k) |
| | 查找第 k 小的元素(会修改数组顺序)。
|
| template<class T, size_t N, size_t K> |
| MultiArray< T, N+K - 1 > | convolve1d (const MultiArray< T, N > &signal, const MultiArray< T, K > &kernel) |
| | 一维卷积。
|
| template<class T, size_t... Dims> |
| MultiArray< T, Dims... > | sin (const MultiArray< T, Dims... > &arr) |
| | 对数组每个元素应用 std::sin。
|
| template<class T, size_t... Dims> |
| MultiArray< T, Dims... > | cos (const MultiArray< T, Dims... > &arr) |
| | 对数组每个元素应用 std::cos。
|
| template<class T, size_t... Dims> |
| MultiArray< T, Dims... > | tan (const MultiArray< T, Dims... > &arr) |
| | 对数组每个元素应用 std::tan。
|
| template<class T, size_t... Dims> |
| MultiArray< T, Dims... > | asin (const MultiArray< T, Dims... > &arr) |
| | 对数组每个元素应用 std::asin。
|
| template<class T, size_t... Dims> |
| MultiArray< T, Dims... > | acos (const MultiArray< T, Dims... > &arr) |
| | 对数组每个元素应用 std::acos。
|
| template<class T, size_t... Dims> |
| MultiArray< T, Dims... > | atan (const MultiArray< T, Dims... > &arr) |
| | 对数组每个元素应用 std::atan。
|
| template<class T, size_t... Dims> |
| MultiArray< T, Dims... > | sinh (const MultiArray< T, Dims... > &arr) |
| | 对数组每个元素应用 std::sinh。
|
| template<class T, size_t... Dims> |
| MultiArray< T, Dims... > | cosh (const MultiArray< T, Dims... > &arr) |
| | 对数组每个元素应用 std::cosh。
|
| template<class T, size_t... Dims> |
| MultiArray< T, Dims... > | tanh (const MultiArray< T, Dims... > &arr) |
| | 对数组每个元素应用 std::tanh。
|
| template<class T, size_t... Dims> |
| MultiArray< T, Dims... > | exp (const MultiArray< T, Dims... > &arr) |
| | 对数组每个元素应用 std::exp。
|
| template<class T, size_t... Dims> |
| MultiArray< T, Dims... > | log (const MultiArray< T, Dims... > &arr) |
| | 对数组每个元素应用 std::log(自然对数)。
|
| template<class T, size_t... Dims> |
| MultiArray< T, Dims... > | log10 (const MultiArray< T, Dims... > &arr) |
| | 对数组每个元素应用 std::log10(常用对数)。
|
| template<class T, size_t... Dims> |
| MultiArray< T, Dims... > | pow (const MultiArray< T, Dims... > &arr, T exponent) |
| | 对数组每个元素取幂(常数指数)。
|
| template<class T, size_t... Dims> |
| MultiArray< T, Dims... > | pow (const MultiArray< T, Dims... > &base, const MultiArray< T, Dims... > &exp) |
| | 对数组每个元素取幂(指数也是数组,逐元素计算)。
|
| template<class T, size_t... Dims> |
| MultiArray< T, Dims... > | floor (const MultiArray< T, Dims... > &arr) |
| | 对数组每个元素向下取整。
|
| template<class T, size_t... Dims> |
| MultiArray< T, Dims... > | ceil (const MultiArray< T, Dims... > &arr) |
| | 对数组每个元素向上取整。
|
| template<class T, size_t... Dims> |
| MultiArray< T, Dims... > | round (const MultiArray< T, Dims... > &arr) |
| | 对数组每个元素四舍五入。
|
| template<class T, size_t... Dims> |
| void | print_stats (std::ostream &os, const MultiArray< T, Dims... > &arr, const char *name="") |
| | 打印数组的基本统计信息(和、均值、最小值、最大值、标准差)。
|
| template<class T, size_t... Dims> |
| MultiArray< T, Dims... > | operator+ (const MultiArray< T, Dims... > &a, const MultiArray< T, Dims... > &b) |
| | 元素加法(数组 + 数组)。
|
| template<class T, size_t... Dims> |
| MultiArray< T, Dims... > | operator- (const MultiArray< T, Dims... > &a, const MultiArray< T, Dims... > &b) |
| | 元素减法(数组 - 数组)。
|
| template<class T, size_t... Dims> |
| MultiArray< T, Dims... > | operator* (const MultiArray< T, Dims... > &a, const MultiArray< T, Dims... > &b) |
| | 元素乘法(数组 * 数组)。
|
| template<class T, size_t... Dims> |
| MultiArray< T, Dims... > | operator/ (const MultiArray< T, Dims... > &a, const MultiArray< T, Dims... > &b) |
| | 元素除法(数组 / 数组)。
|
| template<class T, size_t... Dims> |
| MultiArray< T, Dims... > | operator% (const MultiArray< T, Dims... > &a, const MultiArray< T, Dims... > &b) |
| | 元素取模(数组 % 数组)。
|
| template<class T, size_t... Dims> |
| MultiArray< T, Dims... > & | operator+= (MultiArray< T, Dims... > &a, const MultiArray< T, Dims... > &b) |
| | 元素加法赋值(数组 += 数组)。
|
| template<class T, size_t... Dims> |
| MultiArray< T, Dims... > & | operator-= (MultiArray< T, Dims... > &a, const MultiArray< T, Dims... > &b) |
| | 元素减法赋值(数组 -= 数组)。
|
| template<class T, size_t... Dims> |
| MultiArray< T, Dims... > & | operator*= (MultiArray< T, Dims... > &a, const MultiArray< T, Dims... > &b) |
| | 元素乘法赋值(数组 *= 数组)。
|
| template<class T, size_t... Dims> |
| MultiArray< T, Dims... > & | operator/= (MultiArray< T, Dims... > &a, const MultiArray< T, Dims... > &b) |
| | 元素除法赋值(数组 /= 数组)。
|
| template<class T, size_t... Dims> |
| MultiArray< T, Dims... > & | operator%= (MultiArray< T, Dims... > &a, const MultiArray< T, Dims... > &b) |
| | 元素取模赋值(数组 %= 数组)。
|
| template<class T, size_t... Dims> |
| MultiArray< bool, Dims... > | operator== (const MultiArray< T, Dims... > &a, const MultiArray< T, Dims... > &b) |
| | 元素相等比较(数组 == 数组),返回 bool 数组。
|
| template<class T, size_t... Dims> |
| MultiArray< bool, Dims... > | operator!= (const MultiArray< T, Dims... > &a, const MultiArray< T, Dims... > &b) |
| | 元素不等比较(数组 != 数组)。
|
| template<class T, size_t... Dims> |
| MultiArray< bool, Dims... > | operator< (const MultiArray< T, Dims... > &a, const MultiArray< T, Dims... > &b) |
| | 元素小于比较(数组 < 数组)。
|
| template<class T, size_t... Dims> |
| MultiArray< bool, Dims... > | operator> (const MultiArray< T, Dims... > &a, const MultiArray< T, Dims... > &b) |
| | 元素大于比较(数组 > 数组)。
|
| template<class T, size_t... Dims> |
| MultiArray< bool, Dims... > | operator<= (const MultiArray< T, Dims... > &a, const MultiArray< T, Dims... > &b) |
| | 元素小于等于比较(数组 <= 数组)。
|
| template<class T, size_t... Dims> |
| MultiArray< bool, Dims... > | operator>= (const MultiArray< T, Dims... > &a, const MultiArray< T, Dims... > &b) |
| | 元素大于等于比较(数组 >= 数组)。
|
| template<class T, size_t... Dims, class U> |
| MultiArray< T, Dims... > | operator+ (const MultiArray< T, Dims... > &a, const U &value) |
| | 数组 + 标量。
|
| template<class T, size_t... Dims, class U> |
| MultiArray< T, Dims... > | operator- (const MultiArray< T, Dims... > &a, const U &value) |
| | 数组 - 标量。
|
| template<class T, size_t... Dims, class U> |
| MultiArray< T, Dims... > | operator* (const MultiArray< T, Dims... > &a, const U &value) |
| | 数组 * 标量。
|
| template<class T, size_t... Dims, class U> |
| MultiArray< T, Dims... > | operator/ (const MultiArray< T, Dims... > &a, const U &value) |
| | 数组 / 标量。
|
| template<class T, size_t... Dims, class U> |
| MultiArray< T, Dims... > | operator% (const MultiArray< T, Dims... > &a, const U &value) |
| | 数组 % 标量。
|
| template<class T, size_t... Dims, class U> |
| MultiArray< T, Dims... > & | operator+= (MultiArray< T, Dims... > &a, const U &value) |
| | 数组 += 标量。
|
| template<class T, size_t... Dims, class U> |
| MultiArray< T, Dims... > & | operator-= (MultiArray< T, Dims... > &a, const U &value) |
| | 数组 -= 标量。
|
| template<class T, size_t... Dims, class U> |
| MultiArray< T, Dims... > & | operator*= (MultiArray< T, Dims... > &a, const U &value) |
| | 数组 *= 标量。
|
| template<class T, size_t... Dims, class U> |
| MultiArray< T, Dims... > & | operator/= (MultiArray< T, Dims... > &a, const U &value) |
| | 数组 /= 标量。
|
| template<class T, size_t... Dims, class U> |
| MultiArray< T, Dims... > & | operator%= (MultiArray< T, Dims... > &a, const U &value) |
| | 数组 %= 标量。
|
| template<class T, size_t... Dims, class U> |
| MultiArray< T, Dims... > | operator+ (const U &value, const MultiArray< T, Dims... > &a) |
| | 标量 + 数组。
|
| template<class T, size_t... Dims, class U> |
| MultiArray< T, Dims... > | operator- (const U &value, const MultiArray< T, Dims... > &a) |
| | 标量 - 数组。
|
| template<class T, size_t... Dims, class U> |
| MultiArray< T, Dims... > | operator* (const U &value, const MultiArray< T, Dims... > &a) |
| | 标量 * 数组。
|
| template<class T, size_t... Dims, class U> |
| MultiArray< T, Dims... > | operator/ (const U &value, const MultiArray< T, Dims... > &a) |
| | 标量 / 数组。
|
| template<class T, size_t... Dims, class U> |
| MultiArray< T, Dims... > | operator% (const U &value, const MultiArray< T, Dims... > &a) |
| | 标量 % 数组。
|
| template<class T, size_t... Dims> |
| MultiArray< T, Dims... > | operator+ (const MultiArray< T, Dims... > &a) |
| | 一元正号(数组)。
|
| template<class T, size_t... Dims> |
| MultiArray< T, Dims... > | operator- (const MultiArray< T, Dims... > &a) |
| | 一元负号(数组)。
|
| template<class T, size_t... Dims> |
| MultiArray< bool, Dims... > | operator! (const MultiArray< T, Dims... > &a) |
| | 逻辑非(数组),返回 bool 数组。
|
| template<class T, size_t... Dims> |
| MultiArray< T, Dims... > | operator~ (const MultiArray< T, Dims... > &a) |
| | 按位取反(数组)。
|
| template<class T, size_t... Dims, class U> |
| MultiArray< bool, Dims... > | operator== (const MultiArray< T, Dims... > &a, const U &value) |
| | 数组 == 标量。
|
| template<class T, size_t... Dims, class U> |
| MultiArray< bool, Dims... > | operator!= (const MultiArray< T, Dims... > &a, const U &value) |
| | 数组 != 标量。
|
| template<class T, size_t... Dims, class U> |
| MultiArray< bool, Dims... > | operator< (const MultiArray< T, Dims... > &a, const U &value) |
| | 数组 < 标量。
|
| template<class T, size_t... Dims, class U> |
| MultiArray< bool, Dims... > | operator> (const MultiArray< T, Dims... > &a, const U &value) |
| | 数组 > 标量。
|
| template<class T, size_t... Dims, class U> |
| MultiArray< bool, Dims... > | operator<= (const MultiArray< T, Dims... > &a, const U &value) |
| | 数组 <= 标量。
|
| template<class T, size_t... Dims, class U> |
| MultiArray< bool, Dims... > | operator>= (const MultiArray< T, Dims... > &a, const U &value) |
| | 数组 >= 标量。
|
| template<class T, size_t... Dims, class U> |
| MultiArray< bool, Dims... > | operator== (const U &value, const MultiArray< T, Dims... > &a) |
| | 标量 == 数组。
|
| template<class T, size_t... Dims, class U> |
| MultiArray< bool, Dims... > | operator!= (const U &value, const MultiArray< T, Dims... > &a) |
| | 标量 != 数组。
|
| template<class T, size_t... Dims, class U> |
| MultiArray< bool, Dims... > | operator< (const U &value, const MultiArray< T, Dims... > &a) |
| | 标量 < 数组。
|
| template<class T, size_t... Dims, class U> |
| MultiArray< bool, Dims... > | operator> (const U &value, const MultiArray< T, Dims... > &a) |
| | 标量 > 数组。
|
| template<class T, size_t... Dims, class U> |
| MultiArray< bool, Dims... > | operator<= (const U &value, const MultiArray< T, Dims... > &a) |
| | 标量 <= 数组。
|
| template<class T, size_t... Dims, class U> |
| MultiArray< bool, Dims... > | operator>= (const U &value, const MultiArray< T, Dims... > &a) |
| | 标量 >= 数组。
|
| template<class T, size_t... Dims> |
| MultiArray< bool, Dims... > | operator&& (const MultiArray< T, Dims... > &a, const MultiArray< T, Dims... > &b) |
| | 逻辑与(数组 && 数组),返回 bool 数组。
|
| template<class T, size_t... Dims> |
| MultiArray< bool, Dims... > | operator|| (const MultiArray< T, Dims... > &a, const MultiArray< T, Dims... > &b) |
| | 逻辑或(数组 || 数组)。
|
| template<class T, size_t... Dims, class U> |
| MultiArray< bool, Dims... > | operator&& (const MultiArray< T, Dims... > &a, const U &value) |
| | 逻辑与(数组 && 标量)。
|
| template<class T, size_t... Dims, class U> |
| MultiArray< bool, Dims... > | operator|| (const MultiArray< T, Dims... > &a, const U &value) |
| | 逻辑或(数组 || 标量)。
|
| template<class T, size_t... Dims, class U> |
| MultiArray< bool, Dims... > | operator&& (const U &value, const MultiArray< T, Dims... > &a) |
| | 逻辑与(标量 && 数组)。
|
| template<class T, size_t... Dims, class U> |
| MultiArray< bool, Dims... > | operator|| (const U &value, const MultiArray< T, Dims... > &a) |
| | 逻辑或(标量 || 数组)。
|
| template<class T, size_t... Dims> |
| MultiArray< T, Dims... > | operator& (const MultiArray< T, Dims... > &a, const MultiArray< T, Dims... > &b) |
| | 按位与(数组 & 数组)。
|
| template<class T, size_t... Dims> |
| MultiArray< T, Dims... > | operator| (const MultiArray< T, Dims... > &a, const MultiArray< T, Dims... > &b) |
| | 按位或(数组 | 数组)。
|
| template<class T, size_t... Dims> |
| MultiArray< T, Dims... > | operator^ (const MultiArray< T, Dims... > &a, const MultiArray< T, Dims... > &b) |
| | 按位异或(数组 ^ 数组)。
|
| template<class T, size_t... Dims> |
| MultiArray< T, Dims... > | operator<< (const MultiArray< T, Dims... > &a, const MultiArray< T, Dims... > &b) |
| | 左移(数组 << 数组)。
|
| template<class T, size_t... Dims> |
| MultiArray< T, Dims... > | operator>> (const MultiArray< T, Dims... > &a, const MultiArray< T, Dims... > &b) |
| | 右移(数组 >> 数组)。
|
| template<class T, size_t... Dims> |
| MultiArray< T, Dims... > & | operator&= (MultiArray< T, Dims... > &a, const MultiArray< T, Dims... > &b) |
| | 按位与赋值(数组 &= 数组)。
|
| template<class T, size_t... Dims> |
| MultiArray< T, Dims... > & | operator|= (MultiArray< T, Dims... > &a, const MultiArray< T, Dims... > &b) |
| | 按位或赋值(数组 |= 数组)。
|
| template<class T, size_t... Dims> |
| MultiArray< T, Dims... > & | operator^= (MultiArray< T, Dims... > &a, const MultiArray< T, Dims... > &b) |
| | 按位异或赋值(数组 ^= 数组)。
|
| template<class T, size_t... Dims> |
| MultiArray< T, Dims... > & | operator<<= (MultiArray< T, Dims... > &a, const MultiArray< T, Dims... > &b) |
| | 左移赋值(数组 <<= 数组)。
|
| template<class T, size_t... Dims> |
| MultiArray< T, Dims... > & | operator>>= (MultiArray< T, Dims... > &a, const MultiArray< T, Dims... > &b) |
| | 右移赋值(数组 >>= 数组)。
|
| template<class T, size_t... Dims, class U> |
| MultiArray< T, Dims... > | operator& (const MultiArray< T, Dims... > &a, const U &value) |
| | 数组 & 标量(按位与)。
|
| template<class T, size_t... Dims, class U> |
| MultiArray< T, Dims... > | operator| (const MultiArray< T, Dims... > &a, const U &value) |
| | 数组 | 标量(按位或)。
|
| template<class T, size_t... Dims, class U> |
| MultiArray< T, Dims... > | operator^ (const MultiArray< T, Dims... > &a, const U &value) |
| | 数组 ^ 标量(按位异或)。
|
| template<class T, size_t... Dims, class U> |
| MultiArray< T, Dims... > | operator<< (const MultiArray< T, Dims... > &a, const U &value) |
| | 数组 << 标量(左移)。
|
| template<class T, size_t... Dims, class U> |
| MultiArray< T, Dims... > | operator>> (const MultiArray< T, Dims... > &a, const U &value) |
| | 数组 >> 标量(右移)。
|
| template<class T, size_t... Dims, class U> |
| MultiArray< T, Dims... > | operator& (const U &value, const MultiArray< T, Dims... > &a) |
| | 标量 & 数组(按位与,对称调用)。
|
| template<class T, size_t... Dims, class U> |
| MultiArray< T, Dims... > | operator| (const U &value, const MultiArray< T, Dims... > &a) |
| | 标量 | 数组(按位或,对称调用)。
|
| template<class T, size_t... Dims, class U> |
| MultiArray< T, Dims... > | operator^ (const U &value, const MultiArray< T, Dims... > &a) |
| | 标量 ^ 数组(按位异或,对称调用)。
|
| template<class T, size_t... Dims, class U> |
| MultiArray< T, Dims... > | operator<< (const U &value, const MultiArray< T, Dims... > &a) |
| | 标量 << 数组(左移,标量左移数组每位)。
|
| template<class T, size_t... Dims, class U> |
| MultiArray< T, Dims... > | operator>> (const U &value, const MultiArray< T, Dims... > &a) |
| | 标量 >> 数组(右移,标量右移数组每位)。
|
| template<class T, size_t... Dims, class U> |
| MultiArray< T, Dims... > & | operator&= (MultiArray< T, Dims... > &a, const U &value) |
| | 数组 &= 标量(按位与赋值)。
|
| template<class T, size_t... Dims, class U> |
| MultiArray< T, Dims... > & | operator|= (MultiArray< T, Dims... > &a, const U &value) |
| | 数组 |= 标量(按位或赋值)。
|
| template<class T, size_t... Dims, class U> |
| MultiArray< T, Dims... > & | operator^= (MultiArray< T, Dims... > &a, const U &value) |
| | 数组 ^= 标量(按位异或赋值)。
|
| template<class T, size_t... Dims, class U> |
| MultiArray< T, Dims... > & | operator<<= (MultiArray< T, Dims... > &a, const U &value) |
| | 数组 <<= 标量(左移赋值)。
|
| template<class T, size_t... Dims, class U> |
| MultiArray< T, Dims... > & | operator>>= (MultiArray< T, Dims... > &a, const U &value) |
| | 数组 >>= 标量(右移赋值)。
|
| template<class T, size_t... Dims> |
| T | sum (const MultiArray< T, Dims... > &a) |
| | 求和所有元素。
|
| template<class T, size_t... Dims> |
| T | min (const MultiArray< T, Dims... > &a) |
| | 求最小值。
|
| template<class T, size_t... Dims> |
| T | max (const MultiArray< T, Dims... > &a) |
| | 求最大值。
|
| template<class T, size_t... Dims> |
| bool | all (const MultiArray< T, Dims... > &a) |
| | 检查所有元素是否都为 true(逻辑与归约)。
|
| template<class T, size_t... Dims> |
| bool | any (const MultiArray< T, Dims... > &a) |
| | 检查是否存在至少一个 true 元素(逻辑或归约)。
|
| template<size_t... OutArrDims, class VarType, size_t... InArrDims> |
| MultiArray< VarType, OutArrDims... > | multiarray_cast (const MultiArray< VarType, InArrDims... > &inputArr) |
| | 改变 MultiArray 的维度形状(元素类型不变),要求总元素数相同。
|
| template<class OutType, size_t... OutArrDims, class InType, size_t... InArrDims> |
| MultiArray< OutType, OutArrDims... > | unsafe_multiarray_cast (const MultiArray< InType, InArrDims... > &inputArr) |
| | 不安全地改变 MultiArray 的元素类型和维度(内存拷贝)。
|
| template<size_t... OutArrDims, class VarType, size_t... InArrDims> |
| MultiArray< VarType, OutArrDims... > & | inplace_multiarray_cast (MultiArray< VarType, InArrDims... > &inputArr) |
| | 就地版本的 multiarray_cast,仅视图,不拷贝(可变版本)
|
| template<size_t... OutArrDims, class VarType, size_t... InArrDims> |
| const MultiArray< VarType, OutArrDims... > & | inplace_multiarray_cast (const MultiArray< VarType, InArrDims... > &inputArr) |
| | 就地版本的 multiarray_cast,仅视图,不拷贝(常量版本)
|
| template<class T> |
| std::ostream & | operator<< (std::ostream &, const std::vector< T > &) |
| | std::vector 输出声明。
|
| template<class T> |
| std::ostream & | operator<< (std::ostream &, const std::deque< T > &) |
| | std::deque 输出声明。
|
| template<class T> |
| std::ostream & | operator<< (std::ostream &, const std::list< T > &) |
| | std::list 输出声明。
|
| template<class T> |
| std::ostream & | operator<< (std::ostream &, const std::forward_list< T > &) |
| | std::forward_list 输出声明。
|
| template<class T, size_t n> |
| std::ostream & | operator<< (std::ostream &, const std::array< T, n > &) |
| | std::array 输出声明。
|
| template<class T> |
| std::ostream & | operator<< (std::ostream &, const std::set< T > &) |
| | std::set 输出声明。
|
| template<class K, class V> |
| std::ostream & | operator<< (std::ostream &, const std::map< K, V > &) |
| | std::map 输出声明。
|
| template<class T> |
| std::ostream & | operator<< (std::ostream &, const std::multiset< T > &) |
| | std::multiset 输出声明。
|
| template<class K, class V> |
| std::ostream & | operator<< (std::ostream &, const std::multimap< K, V > &) |
| | std::multimap 输出声明。
|
| template<class T> |
| std::ostream & | operator<< (std::ostream &, const std::unordered_set< T > &) |
| | std::unordered_set 输出声明。
|
| template<class K, class V> |
| std::ostream & | operator<< (std::ostream &, const std::unordered_map< K, V > &) |
| | std::unordered_map 输出声明。
|
| template<class T> |
| std::ostream & | operator<< (std::ostream &, const std::unordered_multiset< T > &) |
| | std::unordered_multiset 输出声明。
|
| template<class K, class V> |
| std::ostream & | operator<< (std::ostream &, const std::unordered_multimap< K, V > &) |
| | std::unordered_multimap 输出声明。
|
| template<class T, class U> |
| std::ostream & | operator<< (std::ostream &, const std::pair< T, U > &) |
| | std::pair 输出声明。
|
| template<class... Args> |
| std::ostream & | operator<< (std::ostream &, const std::tuple< Args... > &) |
| | std::tuple 输出声明。
|
| template<class T> |
| std::ostream & | operator<< (std::ostream &, const std::valarray< T > &) |
| | std::valarray 输出声明。
|
| template<class Cont> |
| std::ostream & | cont_print_sequence (std::ostream &os, const Cont &cont) |
| | 输出序列容器(如 vector, list)的内容,格式为 [a, b, c]。
|
| template<class Cont> |
| std::ostream & | cont_print_set (std::ostream &os, const Cont &cont) |
| | 输出集合容器(如 set, unordered_set)的内容,格式为 {a, b, c}。
|
| template<class Cont> |
| std::ostream & | cont_print_map (std::ostream &os, const Cont &cont) |
| | 输出映射容器(如 map, unordered_map)的内容,格式为 {key: value, ...}。
|
| template<class T, size_t N> |
| std::array< T, N > | to_array (const T(&ar)[N]) |
| | 将 C 风格数组转换为 std::array。
|
| template<class T, size_t N> |
| std::vector< T > | to_vector (const T(&ar)[N]) |
| | 将 C 风格数组转换为 std::vector。
|
| template<class Cont> |
| auto | progress (Cont &&cont, const ProgressConfig &pc={}) -> Progress< decltype(std::begin(cont))> |
| | 创建进度条对象的辅助函数(自动推导容器类型)。
|
| std::mt19937 & | default_gen () |
| | 获取一个全局的、以当前时间戳为种子的 Mersenne Twister 随机数引擎。
|
| void | seed (unsigned int seed) |
| | 修改 default_gen 提供的随机数引擎的种子。
|
| template<class T = int> |
| T | randint (T min=0, T max=32767, std::mt19937 &gen=default_gen()) |
| | 生成一个指定范围内的随机整数(均匀分布)。
|
| template<class T = double> |
| T | uniform (T min=0.0, T max=1.0, std::mt19937 &gen=default_gen()) |
| | 生成一个指定范围内的随机浮点数(均匀分布)。
|
| template<class C> |
| auto | choice (C &c, std::mt19937 &gen=default_gen()) -> decltype(*std::begin(c)) |
| | 从容器中随机选择一个元素(左值版本,返回引用)。
|
| template<class C> |
| auto | choice (C &&c, std::mt19937 &gen=default_gen()) -> std::remove_reference< decltype(*std::begin(c))>::type |
| | 从容器中随机选择一个元素(右值版本,返回值)。
|
| template<class T> |
| auto | choice (std::initializer_list< T > init, std::mt19937 &gen=default_gen()) -> decltype(*std::begin(init)) |
| | 从 std::initializer_list 中随机选择一个元素(重载版本)。
|
| template<class C> |
| void | shuffle (C &&c, std::mt19937 &gen=default_gen()) |
| | 随机打乱容器中元素的顺序(Fisher-Yates 洗牌算法)。
|
| template<class T = double> |
| std::vector< T > | rnorm (size_t n, T mean=0.0, T sd=1.0, std::mt19937 &gen=default_gen()) |
| | 生成 n 个服从正态分布(Normal Distribution)的随机数。
|
| template<class T = double> |
| std::vector< T > | runif (size_t n, T min=0.0, T max=1.0, std::mt19937 &gen=default_gen()) |
| | 生成 n 个服从均匀分布(Uniform Distribution)的随机数。
|
| template<class T = int> |
| std::vector< T > | rbinom (size_t n, T size, double prob, std::mt19937 &gen=default_gen()) |
| | 生成 n 个服从二项分布(Binomial Distribution)的随机数。
|
| template<class T = int> |
| std::vector< T > | rpois (size_t n, double lambda, std::mt19937 &gen=default_gen()) |
| | 生成 n 个服从泊松分布(Poisson Distribution)的随机数。
|
| template<class T = double> |
| std::vector< T > | rexp (size_t n, T rate=1.0, std::mt19937 &gen=default_gen()) |
| | 生成 n 个服从指数分布(Exponential Distribution)的随机数。
|
| template<class T = double> |
| std::vector< T > | rgamma (size_t n, T shape, T rate=1.0, std::mt19937 &gen=default_gen()) |
| | 生成 n 个服从伽马分布(Gamma Distribution)的随机数。
|
| template<class T = double> |
| std::vector< T > | rbeta (size_t n, T shape1, T shape2, std::mt19937 &gen=default_gen()) |
| | 生成 n 个服从贝塔分布(Beta Distribution)的随机数。
|
| template<class T = double> |
| std::vector< T > | rchisq (size_t n, T df, std::mt19937 &gen=default_gen()) |
| | 生成 n 个服从卡方分布(Chi-squared Distribution)的随机数。
|
| template<class T = double> |
| std::vector< T > | rt (size_t n, T df, std::mt19937 &gen=default_gen()) |
| | 生成 n 个服从 t 分布(Student's t-distribution)的随机数。
|
| template<class T = double> |
| std::vector< T > | rf (size_t n, T df1, T df2, std::mt19937 &gen=default_gen()) |
| | 生成 n 个服从 F 分布(Fisher–Snedecor F-distribution)的随机数。
|
| template<class T = double> |
| std::vector< T > | rlnorm (size_t n, T meanlog=0.0, T sdlog=1.0, std::mt19937 &gen=default_gen()) |
| | 生成 n 个服从对数正态分布(Lognormal Distribution)的随机数。
|
| template<class T = double> |
| std::vector< T > | rweibull (size_t n, T shape, T scale=1.0, std::mt19937 &gen=default_gen()) |
| | 生成 n 个服从韦布尔分布(Weibull Distribution)的随机数。
|
| template<class C> |
| auto | sample (C &&c, size_t size, bool replace=false, std::mt19937 &gen=default_gen()) -> std::vector< typename std::iterator_traits< decltype(std::begin(c))>::value_type > |
| | 从容器中随机抽取指定数量的元素(有放回或无放回)。
|
| template<class T> |
| std::vector< T > | sample (std::initializer_list< T > init, size_t size, bool replace=false, std::mt19937 &gen=default_gen()) |
| | 从 std::initializer_list 中随机抽样(重载版本)。
|
| std::string | tiname (const std::type_info &ti) |
| | 获取类型信息的可读名称(跨平台 demangle)。
|
| template<class T> |
| enable_if_string< T > | repr (T &&value, std::ostream &os=std::cout) |
| | 输出字符串类型(std::string, const char* 等)的表示,带双引号。
|
| template<class T> |
| enable_if_char< T > | repr (T &&value, std::ostream &os=std::cout) |
| | 输出字符类型的表示,带单引号。
|
| template<class T> |
| std::enable_if< std::is_same< typenamestd::decay< T >::type, bool >::value >::type | repr (T &&value, std::ostream &os=std::cout) |
| | 输出布尔值的表示("true" 或 "false")。
|
| template<class T> |
| std::enable_if< std::is_same< typenamestd::decay< T >::type, std::nullptr_t >::value >::type | repr (T &&, std::ostream &os=std::cout) |
| | 输出 nullptr 的表示。
|
| template<class Ret, class... Args> |
| void | repr (Ret(*f)(Args...), std::ostream &os=std::cout) |
| | 输出函数指针的表示,格式为 "<function at 地址>"。
|
| template<class T> |
| std::enable_if<!std::is_same< typenamestd::decay< T >::type, bool >::value &&!is_string< typenamestd::decay< T >::type >::value &&!is_char< typenamestd::decay< T >::type >::value &&!std::is_function< typenamestd::decay< T >::type >::value &&is_printable< typenamestd::decay< T >::type >::value >::type | repr (T &&value, std::ostream &os=std::cout) |
| | 输出可打印类型(定义了 operator<<)的表示,直接输出值。
|
| template<class T> |
| std::enable_if<!std::is_same< typenamestd::decay< T >::type, std::nullptr_t >::value &&!is_string< typenamestd::decay< T >::type >::value &&!is_char< typenamestd::decay< T >::type >::value &&!is_printable< typenamestd::decay< T >::type >::value >::type | repr (T &&value, std::ostream &os=std::cout) |
| | 输出不可打印类型的表示,格式为 "<类型名 object at 地址>"。
|
| std::string | ltrim (std::string str) |
| | 移除字符串左侧的空白字符(空格、制表符等)。
|
| std::string | rtrim (std::string str) |
| | 移除字符串右侧的空白字符。
|
| std::string | trim (std::string str) |
| | 移除字符串两侧的空白字符。
|
| std::string | ltrim (std::string str, const std::string &chars) |
| | 移除字符串左侧指定的字符集合。
|
| std::string | rtrim (std::string str, const std::string &chars) |
| | 移除字符串右侧指定的字符集合。
|
| std::string | trim (std::string str, const std::string &chars) |
| | 移除字符串两侧指定的字符集合。
|
| std::string | upper (std::string str) |
| | 将字符串转换为大写。
|
| std::string | lower (std::string str) |
| | 将字符串转换为小写。
|
| std::string | title (std::string str) |
| | 将字符串转换为标题格式(每个单词首字母大写,其余小写)。
|
| PartitionResult | partition (const std::string &text, const std::string &sep) |
| | 在字符串中查找第一个分隔符,并返回分隔符之前、分隔符本身、分隔符之后的三部分。
|
| std::vector< std::string > | split (std::string text, const std::string &sep=" ") |
| | 以分隔符分割字符串(类似 Python 的 split,默认按空格分割)。
|
| template<class T> |
| std::string | join (const std::vector< T > &vec, const std::string &sep="") |
| | 以分隔符连接容器中的字符串元素。
|
| template<class... Args> |
| std::string | uni_to_str (Args &&...args) |
| | 将任意多个参数转换为字符串并拼接(无分隔符)。
|
| Time | now () |
| | 获取当前时间点(自纪元以来的纳秒数)。
|
| template<class F, class... Args> |
| Time | timer (F &&f, Args &&...args) |
| | 测量函数调用的执行时间。
|
| void | sleep (const Time &tr) |
| | 休眠指定时间。
|
| std::string | datetime (const std::string &fmt="%Y-%m-%d %H:%M:%S") |
| | 获取当前日期时间字符串。
|
| double | fps (double target) |
| | 控制循环的帧率。
|
| std::ostream & | operator<< (std::ostream &os, const View< std::string > &sv) |
| | 输出 std::string 视图的内容(直接输出字符串,不添加额外格式)。
|
| template<class T> |
| std::ostream & | operator<< (std::ostream &os, const View< T > &v) |
| | 输出任意视图的内容(通过 collect() 转为容器后输出)。
|
| template<class Container> |
| View< Container > | make_view (Container &cont) |
| | 创建整个容器的视图(可变版本)。
|
| template<class Container> |
| View< const Container > | make_view (const Container &cont) |
| | 创建整个容器的视图(常量版本)。
|
| template<class Container> |
| View< Container > | make_view (Container &cont, size_t start, size_t end) |
| | 创建容器子区间的视图(可变版本)。
|
| template<class Container> |
| View< const Container > | make_view (const Container &cont, size_t start, size_t end) |
| | 创建容器子区间的视图(常量版本)。
|
| template<class Container> |
| View< Container > | make_view (typename Container::iterator begin, typename Container::iterator end) |
| | 从迭代器对创建视图(可变版本)。
|
| template<class Container> |
| View< const Container > | make_view (typename Container::const_iterator begin, typename Container::const_iterator end) |
| | 从迭代器对创建视图(常量版本)。
|
| template<class T> |
| View< std::vector< T > > | make_view (T *begin, T *end) |
| | 从指针对创建视图(可变版本)。
|
| template<class T> |
| View< const std::vector< T > > | make_view (const T *begin, const T *end) |
| | 从指针对创建视图(常量版本)。
|