类 SpatialWeight
类文档
-
class SpatialWeight
距离和权重的组合类。 该类的实例通常用于提供指向 Distance 和 Weight 类型的指针。 在构造函数中,类型 Distance 和 Weight 的实例将会被克隆。 该类型也提供方法 SpatialWeight::weightVector() 用于直接计算空间权重。
如果距离和权重通过指针设置,那么该类对象将会取得他们的控制权,并在析构的时候释放资源。 如果距离和权重通过引用设置,那么该类对象将会克隆他们。
公有成员函数
-
inline SpatialWeight()
构造一个新的 SpatialWeight 对象。
-
inline SpatialWeight(const Weight *weight, const Distance *distance)
构造一个新的 SpatialWeight 对象。
- 参数:
weight -- 指向权重配置的指针。
distance -- 指向距离配置的指针。
-
inline SpatialWeight(const std::unique_ptr<Weight> &weight, const std::unique_ptr<Distance> &distance)
构造一个新的 SpatialWeight 对象。
- 参数:
weight -- 指向权重配置的指针。
distance -- 指向距离配置的指针。
-
inline SpatialWeight(std::unique_ptr<Weight> &&weight, std::unique_ptr<Distance> &&distance)
构造一个新的 SpatialWeight 对象。
- 参数:
weight -- 指向权重配置的指针。
distance -- 指向距离配置的指针。
-
inline SpatialWeight(const Weight &weight, const Distance &distance)
Construct a new SpatialWeight object.
构造一个新的 SpatialWeight 对象。
- 参数:
weight -- Reference to a weight configuration.
distance -- Reference to distance configuration.
weight -- 指向权重配置的引用。
distance -- 指向距离配置的引用。
-
inline SpatialWeight(const SpatialWeight &spatialWeight)
复制构造一个新的 SpatialWeight 对象。
- 参数:
spatialWeight -- 被复制对象的引用。
-
inline SpatialWeight(SpatialWeight &&other)
Move construct a new SpatialWeight object.
移动构造一个新的 SpatialWeight 对象。
- 参数:
other -- Reference to the object to move from.
other -- 被移动对象的引用。
-
inline virtual ~SpatialWeight()
销毁 SpatialWeight 对象。
-
inline const std::unique_ptr<Weight> &weight() const
获得 SpatialWeight::mWeight 的指针。
- 返回:
指针 SpatialWeight::mWeight 。
-
inline void setWeight(const Weight *weight)
设置 SpatialWeight::mWeight 指针所指向的对象。
- 参数:
weight -- 指向 Weight 实例的指针。 获取该指针的控制权,并在类对象析构时释放该指针所指向的对象。
-
inline void setWeight(const Weight &weight)
设置 SpatialWeight::mWeight 指针所指向的对象。
- 参数:
weight -- 指向 Weight 实例的指针。 指针所指向的对象会被克隆。
-
inline void setWeight(Weight &&weight)
设置 SpatialWeight::mWeight 指针所指向的对象。
- 参数:
weight -- 指向 Weight 实例的指针。 指针所指向的对象会被克隆。
-
inline void setWeight(std::unique_ptr<Weight> &&weight)
设置 SpatialWeight::mWeight 指针所指向的对象。
- 参数:
weight -- 指向 Weight 实例的专属智能指针的右值引用。 指针所指向的对象会被移动。
-
template<typename T>
inline T &weight() const 获得 SpatialWeight::mWeight 的引用并将其转换到所要求的类型
T。- 模板参数:
T -- 返回值的类型。只允许设置为 Weight 的派生类。
- 返回:
转换后的 SpatialWeight::mWeight 引用。
-
inline const std::unique_ptr<Distance> &distance() const
获得指针 SpatialWeight::mDistance。
- 返回:
SpatialWeight::mDistance 指针。
-
inline void setDistance(const Distance *distance)
设置 SpatialWeight::mDistance 指针所指向的对象。
- 参数:
distance -- Pointer to Distance instance. Con获取该指针的控制权,并在类对象析构时释放该指针所指向的对象。
-
inline void setDistance(const Distance &distance)
设置 SpatialWeight::mDistance 指针所指向的对象。
- 参数:
distance -- 指向 Distance 实例的指针。 指针所指向的对象会被克隆。
-
inline void setDistance(Distance &&distance)
设置 SpatialWeight::mDistance 指针所指向的对象。
- 参数:
distance -- 指向 Distance 实例的指针。 指针所指向的对象会被克隆。
-
inline void setDistance(std::unique_ptr<Distance> &&distance)
设置 SpatialWeight::mDistance 指针所指向的对象。
- 参数:
distance -- 指向 Distance 实例的专属智能指针的右值引用。 指针所指向的对象会被移动。
-
template<typename T>
inline T &distance() const 获得指针 SpatialWeight::mDistance 并将其转换到所要求的类型
T。- 模板参数:
T -- 返回值的类型。只允许设置为 Distance 的派生类。
- 返回:
转换后的 SpatialWeight::mDistance 指针。
-
SpatialWeight &operator=(const SpatialWeight &spatialWeight)
重载的
=运算符。 该函数会先实方当前 SpatialWeight::mWeight 和 SpatialWeight::mDistance 所指向的对象, 然后克隆右值传入的 Weight 和 Distance 实例。- 参数:
spatialWeight -- 右值的引用。
- 返回:
该对象的引用。
-
SpatialWeight &operator=(SpatialWeight &&spatialWeight)
重载的
=运算符。 该函数会先实方当前 SpatialWeight::mWeight 和 SpatialWeight::mDistance 所指向的对象, 然后克隆右值传入的 Weight 和 Distance 实例。- 参数:
spatialWeight -- 右值的引用。
- 返回:
该对象的引用。
-
inline virtual arma::vec weightVector(arma::uword focus) const
计算当前样本到其他样本的空间权重向量(包括当前样本自身)。
- 参数:
focus -- 当前样本的索引值。
- 返回:
vec 当前样本到其他所有样本的空间权重向量。
-
virtual bool isValid()
获取当前对象的设置是否合法。
- 返回:
true 如果当前对象合法。
- 返回:
false 如果当前对象不合法。
-
template<>
inline BandwidthWeight &weight() const 获得指针 SpatialWeight::mWeight 并将其转换到所要求的类型 BandwidthWeight 。
- 返回:
转换后的 SpatialWeight::mWeight 指针。
-
template<>
inline CRSDistance &distance() const 获得指针 SpatialWeight::mDistance 并将其转换到所要求的类型 CRSDistance 。
- 返回:
转换后的 SpatialWeight::mDistance 指针。
-
template<>
inline CRSSTDistance &distance() const 获得指针 SpatialWeight::mDistance 并将其转换到所要求的类型 CRSSTDistance 。
- 返回:
转换后的 SpatialWeight::mDistance 指针。
-
template<>
inline MinkwoskiDistance &distance() const 获得指针 SpatialWeight::mDistance 并将其转换到所要求的类型 MinkwoskiDistance 。
- 返回:
转换后的 SpatialWeight::mDistance 指针。
-
template<>
inline DMatDistance &distance() const 获得指针 SpatialWeight::mDistance 并将其转换到所要求的类型 DMatDistance 。
- 返回:
转换后的 SpatialWeight::mDistance 指针。
-
template<>
inline OneDimDistance &distance() const 获得指针 SpatialWeight::mDistance 并将其转换到所要求的类型 OneDimDistance 。
- 返回:
转换后的 SpatialWeight::mDistance 指针。
-
inline SpatialWeight()