表格线识别通用库文档
载入中...
搜索中...
未找到
cm 命名空间参考

命名空间

namespace  imp
 

class  Color
 颜色类 更多...
 
class  ComplexPrinter
 复杂打印器类 更多...
 
struct  ConvertType
 隐式类型转换仿函数 更多...
 
class  Debug
 调试类 更多...
 
struct  DirectoryInfo
 文件目录信息 更多...
 
class  DisjointSet
 并查集类 更多...
 
struct  EnumHash
 枚举哈希仿函数 更多...
 
class  Exception
 通用异常类 更多...
 
class  FileManger
 文件管理器类 更多...
 
class  HLines
 横线列表类 更多...
 
class  Image
 图像类 更多...
 
class  ImagePreprocessor
 图像预处理器类 更多...
 
class  Interval
 区间类 更多...
 
class  Intervals
 区间列表类 更多...
 
class  Line
 线类 更多...
 
class  Lines
 线列表类 更多...
 
class  List
 列表类 更多...
 
class  Percent
 百分比类 更多...
 
class  Point
 点类 更多...
 
class  Printer
 打印器类 更多...
 
class  Projection
 投影类 更多...
 
class  Rect
 矩形类 更多...
 
class  Rects
 矩形列表类 更多...
 
class  Scope
 作用域类 更多...
 
class  VLines
 

类型定义

typedef Point< intPoint2i
 整型坐标点类型
 
typedef Point< floatPoint2f
 单精度浮点型坐标点类型
 
typedef Point< doublePoint2d
 双精度浮点型坐标点类型
 
using size_t = unsigned int
 表示内存中对象的大小,经常用于表示数组长度、内存分配等涉及到大小的地方。
 
using uint = unsigned int
 无符号整型
 
using byte = unsigned char
 字节类型
 
using uchar = unsigned char
 无符号字符类型
 
using ushort = unsigned short
 无符号短整型
 
using ulong = unsigned long
 无符号长整型
 

枚举

enum  LineType { ULINE , HLINE , VLINE }
 线类型枚举 更多...
 
enum  LineDistanceType {
  LDIS_VERTICAL , LDIS_HORIZONTAL , LDIS_HLINE_H , LDIS_VLINE_V ,
  LDIS_MIN_X , LDIS_MIN_Y , LDIS_MAX_X , LDIS_MAX_Y
}
 线与线的间距类型枚举 更多...
 
enum  IntersectType { INTERSECT_X , INTERSECT_Y , INTERSECT_XY }
 相交类型枚举 更多...
 
enum  Statistic { AVERAGE , MAXIMUM , MINIMUM }
 统计方式枚举 更多...
 
enum  Position { LEFT , TOP , RIGHT , BOTTOM }
 位置枚举 更多...
 
enum  RelativePosition { BEFORE , AFTER , NEAR }
 相对位置枚举 更多...
 
enum  Direction { HDIR , VDIR }
 方向枚举 更多...
 
enum  ImageType {
  IMT_JPG , IMT_JPEG , IMT_PNG , IMT_BMP ,
  IMT_TIF , IMT_GIF
}
 图片类型枚举 更多...
 
enum  FileType {
  FT_TXT , FT_LOG , FT_JSON , FT_XML ,
  FT_CSV
}
 文本文件类型枚举 更多...
 
enum  SeparatedColorType { SCT_BLUE , SCT_RED , SCT_BLACK }
 支持分离的颜色类型枚举 更多...
 
enum  ResizeType { RT_AUTO , RT_ZOOM_IN , RT_ZOOM_OUT }
 图片调整大小类型枚举 更多...
 

函数

bool operator== (const Interval &interval1, const Interval &interval2)
 区间类重载等于号
 
bool operator!= (const Interval &interval1, const Interval &interval2)
 区间类重载不等于号
 
bool operator< (const Interval &interval1, const Interval &interval2)
 区间类重载小于号
 
bool operator> (const Interval &interval1, const Interval &interval2)
 区间类重载大于号
 
bool operator<= (const Interval &interval1, const Interval &interval2)
 区间类重载小于等于号
 
bool operator>= (const Interval &interval1, const Interval &interval2)
 区间类重载大于等于号
 
std::ostream & operator<< (std::ostream &out, const Interval &interval)
 区间类重载输出流运算符
 
bool operator== (const Line &line1, const Line &line2)
 线类重载等于号
 
bool operator!= (const Line &line1, const Line &line2)
 线类重载不等于号
 
std::ostream & operator<< (std::ostream &out, const Line &line)
 线类重载输出流运算符
 
template<typename U >
List< Uoperator+ (const List< U > &list1, const List< U > &list2)
 列表类重载加法运算符
 
template<typename U >
std::ostream & operator<< (std::ostream &out, const List< U > &list)
 列表类重载输出流运算符
 
std::ostream & operator<< (std::ostream &out, const Percent &percent)
 百分比类重载输出流运算符
 
template<typename T >
T operator+ (const T &value, const Percent &percent)
 百分比类重载加法运算符
 
template<typename T >
T operator- (const T &value, const Percent &percent)
 百分比类重载减法运算符
 
template<typename T >
T operator* (const T &value, const Percent &percent)
 百分比类重载乘法运算符
 
template<typename T >
T operator/ (const T &value, const Percent &percent)
 百分比类重载除法运算符
 
template<typename U >
bool operator== (const Point< U > &pt1, const Point< U > &pt2)
 点类重载等于号
 
template<typename U >
bool operator!= (const Point< U > &pt1, const Point< U > &pt2)
 点类重载不等于号
 
template<typename U >
bool operator< (const Point< U > &pt1, const Point< U > &pt2)
 点类重载小于号
 
template<typename U >
bool operator> (const Point< U > &pt1, const Point< U > &pt2)
 点类重载大于号
 
template<typename U >
bool operator<= (const Point< U > &pt1, const Point< U > &pt2)
 点类重载小于等于号
 
template<typename U >
bool operator>= (const Point< U > &pt1, const Point< U > &pt2)
 点类重载大于等于号
 
template<typename U >
Point< Uoperator- (const Point< U > &pt1, const Point< U > &pt2)
 点类重载减号运算符
 
template<typename U >
std::ostream & operator<< (std::ostream &out, const Point< U > &pt)
 点类重载输出流运算符
 
bool operator== (const Rect &rect1, const Rect &rect2)
 矩形类重载等于号
 
bool operator!= (const Rect &rect1, const Rect &rect2)
 矩形类重载不等于号
 
bool operator< (const Rect &rect1, const Rect &rect2)
 矩形类重载小于号
 
bool operator> (const Rect &rect1, const Rect &rect2)
 矩形类重载大于号
 
bool operator<= (const Rect &rect1, const Rect &rect2)
 矩形类重载小于等于号
 
bool operator>= (const Rect &rect1, const Rect &rect2)
 矩形类重载大于等于号
 
std::ostream & operator<< (std::ostream &out, const Rect &rect)
 矩形类重载输出流运算符
 
template<typename U >
std::ostream & operator<< (std::ostream &out, const Scope< U > &scope)
 作用域类重载输出流运算符
 
bool ReadBit (uint number, ushort bit)
 读取数字中特定位的值
 
uint WriteBit (uint number, ushort bit, bool value)
 设置数字中特定位的值
 
std::vector< byteIntToBytes (uint number, bool big_endian)
 将整数转换为字节数组
 
uint BytesToInt (const std::vector< byte > &bytes, bool big_endian)
 将字节数组转换为整数
 
bool IsExist (const char *path)
 检查文件或文件夹是否存在
 
bool IsFolder (const char *path)
 检查是否文件夹
 
bool IsFile (const char *path)
 检查是否文件
 
bool CreateFolder (const char *path)
 创建文件夹函数
 
bool DeleteFolder (const char *path)
 删除文件夹函数
 
DirectoryInfo ListDirectory (const char *path)
 列出目录信息函数
 
std::string Sprintf (const char *format,...)
 格式化输出字符串
 
List< std::string > Ssplit (const std::string &original_str, const char *delimiter)
 字符串分割函数
 

类型定义说明

◆ byte

字节类型

在文件 type.h24 行定义.

◆ Point2d

双精度浮点型坐标点类型

在文件 point.hpp115 行定义.

◆ Point2f

单精度浮点型坐标点类型

在文件 point.hpp113 行定义.

◆ Point2i

整型坐标点类型

在文件 point.hpp111 行定义.

◆ size_t

表示内存中对象的大小,经常用于表示数组长度、内存分配等涉及到大小的地方。

在文件 type.h20 行定义.

◆ uchar

无符号字符类型

在文件 type.h26 行定义.

◆ uint

无符号整型

在文件 type.h22 行定义.

◆ ulong

无符号长整型

在文件 type.h30 行定义.

◆ ushort

无符号短整型

在文件 type.h28 行定义.

枚举类型说明

◆ Direction

方向枚举

注意
仅指二维坐标上的方向信息,包括横向和纵向。
枚举值
HDIR 

横向

VDIR 

纵向

在文件 enum.h114 行定义.

◆ FileType

文本文件类型枚举

注解
仅列举当前使用的文本文件类型。
枚举值
FT_TXT 

txt 后缀文件

FT_LOG 

log 后缀文件

FT_JSON 

json 后缀文件

FT_XML 

xml 后缀文件

FT_CSV 

csv 后缀文件

在文件 enum.h146 行定义.

◆ ImageType

图片类型枚举

注解
仅列举当前使用的图片文件类型。
枚举值
IMT_JPG 

jpg 后缀图片

IMT_JPEG 

jpeg 后缀图片

IMT_PNG 

png 后缀图片

IMT_BMP 

bmp 后缀图片

IMT_TIF 

tif 后缀图片

IMT_GIF 

gif 后缀图片

在文件 enum.h126 行定义.

◆ IntersectType

相交类型枚举

注意
仅仅指二维坐标上的相交情况。
枚举值
INTERSECT_X 

x坐标上相交

INTERSECT_Y 

y坐标上相交

INTERSECT_XY 

xy坐标上相交

在文件 enum.h56 行定义.

◆ LineDistanceType

线与线的间距类型枚举

枚举值
LDIS_VERTICAL 

线与线之间的垂直距离(通常是横线与横线之间的垂直距离)

LDIS_HORIZONTAL 

线与线之间的水平距离(通常是竖线与竖线之间的水平距离)

LDIS_HLINE_H 

横线与横线之间的水平距离(可能为负数,为负数时表示两横线在x坐标上相交)

LDIS_VLINE_V 

竖线与竖线之间的垂直距离(可能为负数,为负数时表示两竖线在y坐标上相交)

LDIS_MIN_X 

线与线之间的最小x坐标距离

LDIS_MIN_Y 

线与线之间的最小y坐标距离

LDIS_MAX_X 

线与线之间的最大x坐标距离

LDIS_MAX_Y 

线与线之间的最大y坐标距离

在文件 enum.h32 行定义.

◆ LineType

线类型枚举

注解
通过斜率进行广义上的线型判断,当斜率小于1时为横线,大于等于1时为竖线,计算斜率的公式为 (pt1.y - pt2.y) / (pt1.x - pt2.x)
枚举值
ULINE 

未知线类型 (unknown line)

HLINE 

横线 (horizontal line)

VLINE 

竖线 (vertical line)

在文件 enum.h20 行定义.

◆ Position

位置枚举

注意
仅仅指二维坐标上的位置信息。
枚举值
LEFT 

TOP 

RIGHT 

BOTTOM 

在文件 enum.h84 行定义.

◆ RelativePosition

相对位置枚举

注解
对于一个一维序列,给定一个参考位置,存在三种位置关系,分别是在参考位置的前面、在参考位置的后面和最靠近参考位置(不区分前后)。
枚举值
BEFORE 

小于参考值中的最大值(在参考位置的前面)

AFTER 

大于参考值中的最小值(在参考位置的后面)

NEAR 

最接近参考值的值(最靠近参考位置,不区分前后)

在文件 enum.h100 行定义.

◆ ResizeType

图片调整大小类型枚举

注解
包括放大、缩小和根据图片大小自动调整。
枚举值
RT_AUTO 

自动调整大小,支持放大和缩小图片

RT_ZOOM_IN 

仅支持放大图片

RT_ZOOM_OUT 

仅支持缩小图片

在文件 enum.h178 行定义.

◆ SeparatedColorType

支持分离的颜色类型枚举

注解
通过 HSV 颜色空间分离图片中特定的颜色内容。
枚举值
SCT_BLUE 

蓝色

SCT_RED 

红色

SCT_BLACK 

黑色

在文件 enum.h164 行定义.

◆ Statistic

统计方式枚举

注解
通过对多个数值进行统计得到一个最终值。
枚举值
AVERAGE 

平均值

MAXIMUM 

最大值

MINIMUM 

最小值

在文件 enum.h70 行定义.

函数说明

◆ BytesToInt()

uint cm::BytesToInt ( const std::vector< byte > & bytes,
bool big_endian )
inline

将字节数组转换为整数

该函数将字节数组转换为无符号整数,可选择控制大小端模式。

参数
bytes要转换的字节数组
big_endian标志,表示采用大端序(true)或小端序(false)字节顺序
返回
转换后的无符号整数
注解
big_endian 参数用于指定字节顺序的方式,有两个可选值:true 和 false。
  • true 表示高位字节在前(大端序),低位字节在后。
  • false 表示低位字节在前(小端序),高位字节在后。
作者
dreamy-xay
日期
2024-03-13

在文件 binary.hpp116 行定义.

◆ CreateFolder()

bool cm::CreateFolder ( const char * path)
inline

创建文件夹函数

该函数用于在指定路径下创建文件夹,首先检查路径是否已经存在,如果存在则返回创建成功,如果不存在则创建文件夹并返回是否已经创建成功。

参数
path要创建的文件夹路径
返回
创建文件夹操作是否成功
返回值
true文创建文件夹成功或文件夹已经存在
false创建文件夹失败
注解
该函数根据操作系统的不同采用不同的方法来创建文件夹:
  • 在 Linux 下使用 mkdir 函数创建文件夹,权限设置为 rwxr-xr-x
  • 在 Windows 下使用 mkdir 函数创建文件夹
注意
只支持 Linux 和 Windows 平台,其他平台调用该函数将引发异常。
作者
dreamy-xay
日期
2023-12-17

在文件 file.hpp188 行定义.

函数调用图:
这是这个函数的调用关系图:

◆ DeleteFolder()

bool cm::DeleteFolder ( const char * path)
inline

删除文件夹函数

该函数用于删除指定路径下的文件夹及其所有内容,包括子文件夹和文件。首先检查路径是否已经存在,如果存在则删除文件夹并返回是否已经删除成功,如果不存在则返回删除失败。

参数
path要删除的文件夹路径
返回
删除文件夹操作是否成功
返回值
true删除文件夹成功
false删除文件夹失败或文件夹不存在
注解
该函数根据操作系统的不同采用不同的方法来删除文件夹及其内容:
  • 在 Linux 下使用 opendir, readdir, lstat, unlink, rmdir 函数递归删除文件夹
  • 在 Windows 下使用 RemoveDirectoryA 函数删除文件夹
注意
只支持 Linux 和 Windows 平台,其他平台调用该函数将引发异常。
作者
dreamy-xay
日期
2023-12-29

在文件 file.hpp229 行定义.

函数调用图:
这是这个函数的调用关系图:

◆ IntToBytes()

std::vector< byte > cm::IntToBytes ( uint number,
bool big_endian )
inline

将整数转换为字节数组

该函数将无符号整数转换为字节数组,可选择控制大小端模式。

参数
number要转换的无符号整数
big_endian标志,表示采用大端序(true)或小端序(false)字节顺序
返回
表示输入数字的字节数组
注解
big_endian 参数用于指定字节顺序的方式,有两个可选值:true 和 false。
  • true 表示高位字节在前(大端序),低位字节在后。
  • false 表示低位字节在前(小端序),高位字节在后。
作者
dreamy-xay
日期
2024-03-13

在文件 binary.hpp88 行定义.

◆ IsExist()

bool cm::IsExist ( const char * path)
inline

检查文件或文件夹是否存在

根据指定的路径 path 判断文件或文件夹是否存在,返回结果为 true 表示存在,false 表示不存在。

参数
path文件或文件夹的路径
返回
文件或文件夹是否存在的布尔值
返回值
true文件或文件夹存在
false文件或文件夹不存在
注解
该函数根据操作系统的不同采用不同的方法来检查文件或文件夹是否存在:
  • 在 Linux 下使用 stat 函数获取文件/文件夹信息。
  • 在 Windows 下使用 GetFileAttributesA 函数获取属性。
注意
只支持 Linux 和 Windows 平台,其他平台调用该函数将引发异常。
作者
dreamy-xay
日期
2023-12-29

在文件 file.hpp73 行定义.

这是这个函数的调用关系图:

◆ IsFile()

bool cm::IsFile ( const char * path)
inline

检查是否文件

根据指定的路径 path 判断是否文件,返回结果为 true 表示是文件,false 表示不是文件。

参数
path文件或文件夹的路径
返回
是否文件的布尔值
返回值
true是文件
false不是文件
注解
该函数根据操作系统的不同采用不同的方法来检查是否文件:
  • 在 Linux 下使用 stat 函数获取文件/文件夹信息。
  • 在 Windows 下使用 GetFileAttributesA 函数获取属性。
注意
只支持 Linux 和 Windows 平台,其他平台调用该函数或者路径不存在将引发异常,。
作者
dreamy-xay
日期
2024-05-17

在文件 file.hpp149 行定义.

◆ IsFolder()

bool cm::IsFolder ( const char * path)
inline

检查是否文件夹

根据指定的路径 path 判断是否文件夹,返回结果为 true 表示是文件夹,false 表示不是文件夹。

参数
path文件或文件夹的路径
返回
是否文件夹的布尔值
返回值
true是文件夹
false不是文件夹
注解
该函数根据操作系统的不同采用不同的方法来检查是否文件夹:
  • 在 Linux 下使用 stat 函数获取文件/文件夹信息。
  • 在 Windows 下使用 GetFileAttributesA 函数获取属性。
注意
只支持 Linux 和 Windows 平台,其他平台调用该函数或者路径不存在将引发异常,。
作者
dreamy-xay
日期
2024-05-17

在文件 file.hpp110 行定义.

◆ ListDirectory()

DirectoryInfo cm::ListDirectory ( const char * path)
inline

列出目录信息函数

该函数用于列出指定路径下的文件夹及其所有内容,包括子文件夹和文件。首先检查路径是否已经存在,如果不存在则返回空数据。

参数
path文件夹路径
返回
目录信息
注解
该函数根据操作系统的不同采用不同的方法来删除文件夹及其内容:
  • 在 Linux 下使用 opendir, readdir 函数查询目录信息
  • 在 Windows 下使用 FindFirstFile, FindNextFile 函数查询目录信息
注意
只支持 Linux 和 Windows 平台,其他平台调用该函数将引发异常。
作者
dreamy-xay
日期
2024-05-17

在文件 file.hpp302 行定义.

函数调用图:

◆ operator!=() [1/4]

bool cm::operator!= ( const Interval & interval1,
const Interval & interval2 )
inline

区间类重载不等于号

该重载函数用于比较两个区间对象是否不相等,判断的标准是两个区间对象的起始点和终止点至少有一个不相等。

参数
interval1第一个区间对象
interval2第二个区间对象
返回
两个区间对象是否不相等
返回值
true两个区间对象的起始点和终止点至少有一个不相等
false两个区间对象的起始点和终止点均相等
作者
dreamy-xay
日期
2023-12-03

在文件 interval.hpp232 行定义.

◆ operator!=() [2/4]

bool cm::operator!= ( const Line & line1,
const Line & line2 )
inline

线类重载不等于号

判断两个线对象是否不相等,通过比较两个线对象的端点坐标是否相同来确定是否不相等。

参数
line1第一个线对象
line2第二个线对象
返回
两条线是否不相等
返回值
true两条线不相等
false两条线相等
作者
dreamy-xay
日期
2023-12-03

在文件 line.hpp656 行定义.

◆ operator!=() [3/4]

template<typename U >
bool cm::operator!= ( const Point< U > & pt1,
const Point< U > & pt2 )
inline

点类重载不等于号

该重载函数用于比较两个点对象是否不相等,判断的标准是两个点的 x 坐标和 y 坐标至少有一个不相等。

模板参数
U点对象的数据类型
参数
pt1第一个点对象
pt2第二个点对象
返回
返回值
true两个点对象的 x 坐标和 y 坐标至少有一个不相等
false两个点对象的 x 坐标和 y 坐标均相等
作者
dreamy-xay
日期
2023-12-03

在文件 point.hpp258 行定义.

◆ operator!=() [4/4]

bool cm::operator!= ( const Rect & rect1,
const Rect & rect2 )
inline

矩形类重载不等于号

该重载函数用于比较两个矩形对象是否不相等。

参数
rect1第一个矩形对象
rect2第二个矩形对象
返回
返回值
false两个矩形对象中左上角 x , y ,宽和高中至少有一个不相等
false两个矩形对象的坐标和尺寸均相等
作者
justliulong
日期
2023-12-03

在文件 rect.hpp370 行定义.

◆ operator*()

template<typename T >
T cm::operator* ( const T & value,
const Percent & percent )
inline

百分比类重载乘法运算符

该重载函数用于实现将值乘以百分比,即 value * cm::Percent(),并返回乘法结果。仅当百分比对象的 IsPercent() 方法返回 true 时,乘法操作才会生效;否则返回百分比对象的值。

模板参数
T乘数的类型
参数
value
percent百分比对象
返回
乘法结果
作者
dreamy-xay
日期
2024-01-28

在文件 percent.hpp372 行定义.

◆ operator+() [1/2]

template<typename U >
List< U > cm::operator+ ( const List< U > & list1,
const List< U > & list2 )
inline

列表类重载加法运算符

该方法用于重载列表的加法运算符,实现两个列表的拼接功能。将两个列表中的元素合并到一个新的列表中,并返回新的列表。

模板参数
U列表中存储的元素类型
参数
list1第一个列表
list1第二个列表
返回
拼接后的新列表
示例
// 初始化两个列表
cm::List<int> list1 = {1, 2, 3, 4};
cm::List<int> list2 = {6, 7, 2};
// 拼接两个列表
cm::List<int> new_list1 = list1 + list2; // new_list1: [1, 2, 3, 4, 6, 7, 2]
cm::List<int> new_list2 = list2 + list1; // new_list2: [6, 7, 2, 1, 2, 3, 4]
点类
Definition point.hpp:52
作者
dreamy-xay
日期
2023-12-08

在文件 list.hpp192 行定义.

◆ operator+() [2/2]

template<typename T >
T cm::operator+ ( const T & value,
const Percent & percent )
inline

百分比类重载加法运算符

该重载函数用于实现将值与百分比相加,即value + cm::Percent(),并返回加法结果。仅当百分比对象的 IsPercent() 方法返回 true 时,加法操作才会生效;否则返回百分比对象的值。

模板参数
T加数的类型
参数
value
percent百分比对象
返回
加法结果
作者
dreamy-xay
日期
2024-01-28

在文件 percent.hpp330 行定义.

◆ operator-() [1/2]

template<typename U >
Point< U > cm::operator- ( const Point< U > & pt1,
const Point< U > & pt2 )
inline

点类重载减号运算符

该重载函数用于实现两个点对象相减,得到一个表示终点减起点的矢量。

模板参数
U点对象中坐标的数据类型
参数
pt1第一个点对象
pt2第二个点对象
返回
一个矢量,具体方向由减法关系决定,比如pt1 - pt2的方向就是从pt2pt1(指向被减数)
作者
dreamy-xay
日期
2023-12-03

在文件 point.hpp369 行定义.

◆ operator-() [2/2]

template<typename T >
T cm::operator- ( const T & value,
const Percent & percent )
inline

百分比类重载减法运算符

该重载函数用于实现将值减去百分比,即 value - cm::Percent(),并返回减法结果。仅当百分比对象的 IsPercent() 方法返回 true 时,减法操作才会生效;否则返回百分比对象的值。

模板参数
T减数的类型
参数
value
percent百分比对象
返回
减法结果
作者
dreamy-xay
日期
2024-01-28

在文件 percent.hpp351 行定义.

◆ operator/()

template<typename T >
T cm::operator/ ( const T & value,
const Percent & percent )
inline

百分比类重载除法运算符

该重载函数用于实现将值除以百分比,即 value / cm::Percent(),并返回除法结果。仅当百分比对象的 IsPercent() 方法返回 true 时,除法操作才会生效;否则返回百分比对象的值。

模板参数
T被除数的类型
参数
value
percent百分比对象
返回
除法结果
作者
dreamy-xay
日期
2024-01-28

在文件 percent.hpp393 行定义.

◆ operator<() [1/3]

bool cm::operator< ( const Interval & interval1,
const Interval & interval2 )
inline

区间类重载小于号

该重载函数用于比较两个区间对象的大小关系,如果第一个区间对象的起始点小于第二个区间对象的起始点,则返回 true;如果两个区间对象的起始点相等,那么比较它们的终止点,终止点小的区间被认为是小于另一个区间。

参数
interval1第一个区间对象
interval2第二个区间对象
返回
区间1和区间2在数轴上的相对位置
返回值
true区间1在数轴上位于区间2的左侧
false区间1不在数轴上位于区间2的左侧
作者
dreamy-xay
日期
2023-12-03

在文件 interval.hpp250 行定义.

◆ operator<() [2/3]

template<typename U >
bool cm::operator< ( const Point< U > & pt1,
const Point< U > & pt2 )
inline

点类重载小于号

该重载函数用于比较两个点对象的大小关系,如果第一个点对象的 x 坐标小于第二个点对象的 x 坐标,则返回 true;如果两个点对象的 x 坐标相等,那么比较它们的 y 坐标,y 坐标小的点被认为是小于另一个点。

模板参数
U点对象中坐标的数据类型
参数
pt1第一个点对象
pt2第二个点对象
返回
点1和点2在二维平面上的相对位置
返回值
true点1位于点2的左下方或左侧
false点1不位于点2的左下方或左侧
作者
dreamy-xay
日期
2023-12-03

在文件 point.hpp279 行定义.

◆ operator<() [3/3]

bool cm::operator< ( const Rect & rect1,
const Rect & rect2 )
inline

矩形类重载小于号

该重载函数用于比较两个矩形对象的大小关系。

参数
rect1第一个矩形对象
rect2第二个矩形对象
返回
返回值
true第一个矩形对象严格小于第二个矩形对象
false第一个矩形对象不严格小于第二个矩形对象
注解
比较顺序是首先按照 x 轴,然后是 y 轴,接着是宽度和高度。一旦发现在任何一个维度上 rect1 小于 rect2,则判定 rect1 小于 rect2。
作者
justliulong
日期
2023-12-03

在文件 rect.hpp390 行定义.

◆ operator<<() [1/7]

std::ostream & cm::operator<< ( std::ostream & out,
const Interval & interval )
inline

区间类重载输出流运算符

此操作符允许将区间对象的内容以文本形式输出到输出流中,如控制台或文件,格式为 "[start, end)"。

参数
out输出流对象,例如 std::cout
interval要输出的区间对象
返回
输出流对象,允许链式调用
作者
dreamy-xay
日期
2023-12-03

在文件 interval.hpp328 行定义.

◆ operator<<() [2/7]

std::ostream & cm::operator<< ( std::ostream & out,
const Line & line )
inline

线类重载输出流运算符

将线对象的信息输出到流中,包括线的两个端点坐标信息。

参数
out输出流对象
line待输出的线对象
返回
输出流对象,以支持流式输出
作者
dreamy-xay
日期
2023-12-03

在文件 line.hpp672 行定义.

◆ operator<<() [3/7]

template<typename U >
std::ostream & cm::operator<< ( std::ostream & out,
const List< U > & list )
inline

列表类重载输出流运算符

该方法用于重载列表类的输出流运算符,以便将列表的内容输出到流中。格式为[element1, element2, ...]

模板参数
U列表中存储的元素类型,通常由编译器自行推导
参数
out输出流
list要输出的列表
返回
输出流对象自身的引用,方便链式调用
作者
dreamy-xay
日期
2023-12-04

在文件 list.hpp215 行定义.

◆ operator<<() [4/7]

std::ostream & cm::operator<< ( std::ostream & out,
const Percent & percent )
inline

百分比类重载输出流运算符

该函数用于重载百分比类的输出流运算符,使得可以直接将百分比对象输出到输出流中。

参数
out输出流对象
percent百分比对象
返回
返回输出流对象
作者
dreamy-xay
日期
2023-12-03

在文件 percent.hpp149 行定义.

◆ operator<<() [5/7]

template<typename U >
std::ostream & cm::operator<< ( std::ostream & out,
const Point< U > & pt )
inline

点类重载输出流运算符

该重载函数用于将点对象的坐标信息输出到流中,以便进行输出操作。

模板参数
U点对象中坐标的数据类型
参数
out输出流
pt点对象
返回
输出流对象,以便进行链式输出操作
作者
dreamy-xay
日期
2023-12-03

在文件 point.hpp388 行定义.

◆ operator<<() [6/7]

std::ostream & cm::operator<< ( std::ostream & out,
const Rect & rect )
inline

矩形类重载输出流运算符

此操作符允许将矩形对象的内容以文本形式输出到输出流中,如控制台或文件。

参数
out输出流对象,例如std::cout
rect要输出的矩形对象
返回
输出流对象out,允许链式调用
作者
justliulong
日期
2023-12-03

在文件 rect.hpp498 行定义.

◆ operator<<() [7/7]

template<typename U >
std::ostream & cm::operator<< ( std::ostream & out,
const Scope< U > & scope )
inline

作用域类重载输出流运算符

将作用域对象的信息以字符串形式输出到输出流中。

参数
out输出流
scope作用域对象
返回
输出流
作者
dreamy-xay
日期
2023-12-06

在文件 scope.hpp140 行定义.

◆ operator<=() [1/3]

bool cm::operator<= ( const Interval & interval1,
const Interval & interval2 )
inline

区间类重载小于等于号

该重载函数用于比较两个区间对象的大小关系,如果第一个区间对象的起始点小于第二个区间对象的起始点,则返回 true;如果两个区间对象的起始点相等,那么比较它们的终止点,终止点小于或等于的情况下也被认为是小于等于另一个区间。

参数
interval1第一个区间对象
interval2第二个区间对象
返回
区间1和区间2在数轴上的相对位置
返回值
true区间1在数轴上位于区间2的左侧或重合
false区间1在数轴上位于区间2的右侧
作者
dreamy-xay
日期
2023-12-03

在文件 interval.hpp290 行定义.

◆ operator<=() [2/3]

template<typename U >
bool cm::operator<= ( const Point< U > & pt1,
const Point< U > & pt2 )
inline

点类重载小于等于号

该重载函数用于比较两个点对象的大小关系,如果第一个点对象的 x 坐标小于等于第二个点对象的 x 坐标,则返回 true;如果两个点对象的 x 坐标相等,那么比较它们的 y 坐标,y 坐标小于等于的点被认为是小于等于另一个点。

模板参数
U点对象中坐标的数据类型
参数
pt1第一个点对象
pt2第二个点对象
返回
点1和点2在二维平面上的相对位置
返回值
true点1位于点2的左下方、左侧或重合
false点1不位于点2的左下方、左侧或重合
作者
dreamy-xay
日期
2023-12-03

在文件 point.hpp325 行定义.

◆ operator<=() [3/3]

bool cm::operator<= ( const Rect & rect1,
const Rect & rect2 )
inline

矩形类重载小于等于号

该重载函数用于比较两个矩形对象的大小关系。

参数
rect1第一个矩形对象
rect2第二个矩形对象
返回
返回值
true如果第一个矩形对象在所有维度上都不大于第二个矩形对象
false如果第一个矩形对象在任何维度上大于第二个矩形对象
注解
比较顺序是首先按照 x 轴,然后是 y 轴,接着是宽度和高度。一旦发现在任何一个维度上 rect1 小于等于 rect2,则判定 rect1 小于等于 rect2。
作者
justliulong
日期
2023-12-03

在文件 rect.hpp446 行定义.

◆ operator==() [1/4]

bool cm::operator== ( const Interval & interval1,
const Interval & interval2 )
inline

区间类重载等于号

该重载函数用于比较两个区间对象是否相等,判断的标准是两个区间对象的起始点和终止点均相等。

参数
interval1第一个区间对象
interval2第二个区间对象
返回
两个区间对象是否相等
返回值
true两个区间对象的起始点和终止点均相等
false两个区间对象的起始点和终止点至少有一个不相等
作者
dreamy-xay
日期
2023-12-03

在文件 interval.hpp214 行定义.

◆ operator==() [2/4]

bool cm::operator== ( const Line & line1,
const Line & line2 )
inline

线类重载等于号

判断两个线对象是否相等,通过比较两个线对象的端点坐标是否相同来确定是否相等。

参数
line1第一个线对象
line2第二个线对象
返回
两条线是否相等
返回值
true两条线相等
false两条线不相等
作者
dreamy-xay
日期
2023-12-03

在文件 line.hpp638 行定义.

◆ operator==() [3/4]

template<typename U >
bool cm::operator== ( const Point< U > & pt1,
const Point< U > & pt2 )
inline

点类重载等于号

该重载函数用于比较两个点对象是否相等,判断的标准是两个点的 x 坐标和 y 坐标均相等。

模板参数
U点对象的数据类型
参数
pt1第一个点对象
pt2第二个点对象
返回
两个点对象是否相等
返回值
true两个点对象的 x 坐标和 y 坐标均相等
false两个点对象的 x 坐标和 y 坐标至少有一个不相等
作者
dreamy-xay
日期
2023-12-03

在文件 point.hpp237 行定义.

◆ operator==() [4/4]

bool cm::operator== ( const Rect & rect1,
const Rect & rect2 )
inline

矩形类重载等于号

该重载函数用于比较两个矩形对象是否相等。如果两个矩形对象的坐标和尺寸均相等,则返回true;否则返回false

参数
rect1第一个矩形对象
rect2第二个矩形对象
返回
返回值
true两个矩形对象的坐标和尺寸均相等
false两个矩形对象中左上角坐标宽和高中至少有一个不相等
作者
justliulong
日期
2023-12-03

在文件 rect.hpp352 行定义.

◆ operator>() [1/3]

bool cm::operator> ( const Interval & interval1,
const Interval & interval2 )
inline

区间类重载大于号

该重载函数用于比较两个区间对象的大小关系,如果第一个区间对象的起始点大于第二个区间对象的起始点,则返回 true;如果两个区间对象的起始点相等,那么比较它们的终止点,终止点大的区间被认为是大于另一个区间。

参数
interval1第一个区间对象
interval2第二个区间对象
返回
区间1和区间2在数轴上的相对位置
返回值
true区间1在数轴上位于区间2的右侧
false区间1不在数轴上位于区间2的右侧
作者
dreamy-xay
日期
2023-12-03

在文件 interval.hpp270 行定义.

◆ operator>() [2/3]

template<typename U >
bool cm::operator> ( const Point< U > & pt1,
const Point< U > & pt2 )
inline

点类重载大于号

该重载函数用于比较两个点对象的大小关系,如果第一个点对象的 x 坐标大于第二个点对象的 x 坐标,则返回 true;如果两个点对象的 x 坐标相等,那么比较它们的 y 坐标,y 坐标大的点被认为是大于另一个点。

模板参数
U点对象中坐标的数据类型
参数
pt1第一个点对象
pt2第二个点对象
返回
点1和点2在二维平面上的相对位置
返回值
true点1位于点2的右上方
false点1不位于点2的右上方
作者
dreamy-xay
日期
2023-12-03

在文件 point.hpp302 行定义.

◆ operator>() [3/3]

bool cm::operator> ( const Rect & rect1,
const Rect & rect2 )
inline

矩形类重载大于号

该重载函数用于比较两个矩形对象的大小关系。

参数
rect1第一个矩形对象
rect2第二个矩形对象
返回
返回值
true第一个矩形对象严格大于第二个矩形对象
false第一个矩形对象不严格大于第二个矩形对象
注解
比较顺序是首先按照 x 轴,然后是 y 轴,接着是宽度和高度。一旦发现在任何一个维度上 rect1 大于 rect2,则判定 rect1 大于 rect2。
作者
justliulong
日期
2023-12-03

在文件 rect.hpp418 行定义.

◆ operator>=() [1/3]

bool cm::operator>= ( const Interval & interval1,
const Interval & interval2 )
inline

区间类重载大于等于号

该重载函数用于比较两个区间对象的大小关系,如果第一个区间对象的起始点大于第二个区间对象的起始点,则返回 true;如果两个区间对象的起始点相等,那么比较它们的终止点,终止点大于或等于的情况下也被认为是大于等于另一个区间。

参数
interval1第一个区间对象
interval2第二个区间对象
返回
区间1和区间2在数轴上的相对位置
返回值
true区间1在数轴上位于区间2的右侧或重合
false区间1在数轴上位于区间2的左侧
作者
dreamy-xay
日期
2023-12-03

在文件 interval.hpp310 行定义.

◆ operator>=() [2/3]

template<typename U >
bool cm::operator>= ( const Point< U > & pt1,
const Point< U > & pt2 )
inline

点类重载大于等于号

该重载函数用于比较两个点对象的大小关系,如果第一个点对象的 x 坐标大于等于第二个点对象的 x 坐标,则返回 true;如果两个点对象的 x 坐标相等,那么比较它们的 y 坐标,y 坐标大于等于的点被认为是大于等于另一个点。

模板参数
U点对象中坐标的数据类型
参数
pt1第一个点对象
pt2第二个点对象
返回
点1和点2在二维平面上的相对位置
返回值
true点1位于点2的右上方、右侧或重合
false点1不位于点2的右上方、右侧或重合
作者
dreamy-xay
日期
2023-12-03

在文件 point.hpp348 行定义.

◆ operator>=() [3/3]

bool cm::operator>= ( const Rect & rect1,
const Rect & rect2 )
inline

矩形类重载大于等于号

该重载函数用于比较两个矩形对象的大小关系。

参数
rect1第一个矩形对象
rect2第二个矩形对象
返回
返回值
true如果第一个矩形对象在所有维度上都不小于第二个矩形对象
false如果第一个矩形对象在任何维度上小于第二个矩形对象
注解
比较顺序是首先按照 x 轴,然后是 y 轴,接着是宽度和高度。一旦发现在任何一个维度上 rect1 大于等于 rect2,则判定 rect1 大于等于 rect2。
作者
justliulong
日期
2023-12-03

在文件 rect.hpp474 行定义.

◆ ReadBit()

bool cm::ReadBit ( uint number,
ushort bit )
inline

读取数字中特定位的值

读取无符号整数 number 中指定位(从右向左,从 0 开始)的值,并返回该位的值(0 或 1)。

参数
number无符号整数
bit指定位的位置(从右向左,从 0 开始计数)
返回
指定位的值
返回值
true指定索引的二进制位值为 1
false指定索引的二进制位值为 0
注解
该函数通过将数字右移指定位数,然后与1进行按位与操作,获取指定位的值并返回。
作者
dreamy-xay
日期
2023-12-17

在文件 binary.hpp49 行定义.

◆ Sprintf()

std::string cm::Sprintf ( const char * format,
... )
inline

格式化输出字符串

根据指定的格式字符串format和可变参数列表,将格式化后的字符串作为返回值。

参数
format格式化字符串,支持与printf相同的格式说明符
...可变参数列表
返回
格式化后的字符串
注解
该函数使用 va_list 和 vsnprintf 实现格式化输出,并返回结果作为 std::string 类型。如果格式化失败或出错,将返回空字符串。
作者
dreamy-xay
日期
2023-12-07

在文件 string.hpp47 行定义.

这是这个函数的调用关系图:

◆ Ssplit()

List< std::string > cm::Ssplit ( const std::string & original_str,
const char * delimiter )
inline

字符串分割函数

根据指定的分隔符delimiter对原始字符串original_str进行分割,并将分割后的子字符串存储在List<std::string>类型的数组中返回。

参数
original_str原始字符串
delimiter分隔符
返回
分割后的子字符串数组
注解
该函数会将原始字符串按照指定的分隔符进行分割,并存储在结果数组中返回。如果分隔符为空字符串,则直接返回空数组。

在文件 string.hpp80 行定义.

◆ WriteBit()

uint cm::WriteBit ( uint number,
ushort bit,
bool value )
inline

设置数字中特定位的值

将无符号整数 number 中的指定位(从右向左,从 0 开始)设置为给定值(true 表示 1,false 表示 0),并返回修改后的数字。

参数
number要修改的无符号整数
bit指定要修改的位的位置(从右向左,从 0 开始计数)
value要设置的值,true 表示将位设置为 1,false 表示将位设置为 0
返回
修改后的数字
注解
该函数根据参数 value 的值来确定是否将指定位设置为 1 或者 0,利用位运算实现位的设置或清零操作,并返回修改后的数字。
作者
dreamy-xay
日期
2024-01-26

在文件 binary.hpp68 行定义.