亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? attribute.cpp

?? 粗慥集成算法集合 ,并有詳細(xì)的文檔資料和測(cè)試數(shù)據(jù)處
?? CPP
字號(hào):
//-------------------------------------------------------------------
// Author........: Aleksander 豩rn
// Date..........: 960630
// Description...:
// Revisions.....:
//===================================================================

#include <stdafx.h> // Precompiled headers.
#include <copyright.h>

#include <kernel/structures/attribute.h>

#include <kernel/utilities/iokit.h>

#include <kernel/basic/interval.h>
#include <kernel/basic/message.h>

//-------------------------------------------------------------------
// Methods for class Attribute.
//===================================================================

//-------------------------------------------------------------------
// Constructors/destructor.
//===================================================================

//-------------------------------------------------------------------
// Method........: Copy constructor.
// Author........: Aleksander 豩rn
// Date..........:
// Description...:
// Comments......:
// Revisions.....:
//===================================================================

Attribute::Attribute(const Attribute &in) : Structure(in) {
	name_ = in.name_;
	unit_ = in.unit_;
}

//-------------------------------------------------------------------
// Method........: Constructor.
// Author........: Aleksander 豩rn
// Date..........:
// Description...:
// Comments......:
// Revisions.....:
//===================================================================

Attribute::Attribute() {
	name_ = Undefined::String();
	unit_ = Undefined::String();
}

//-------------------------------------------------------------------
// Method........: Destructor.
// Author........: Aleksander 豩rn
// Date..........:
// Description...:
// Comments......:
// Revisions.....:
//===================================================================

Attribute::~Attribute() {
}

//-------------------------------------------------------------------
// Methods inherited from Identifier.
//===================================================================

IMPLEMENTIDMETHODS(Attribute, ATTRIBUTE, Structure)

//-------------------------------------------------------------------
// Methods inherited from Persistent.
//===================================================================

//-------------------------------------------------------------------
// Method........: Load
// Author........: Aleksander 豩rn
// Date..........:
// Description...:
// Comments......:
// Revisions.....:
//===================================================================

bool
Attribute::Load(ifstream &stream) {

	if (!IOKit::Load(stream, name_))
		return false;

	if (!IOKit::Load(stream, unit_))
		return false;

	return true;

}

//-------------------------------------------------------------------
// Method........: Save
// Author........: Aleksander 豩rn
// Date..........:
// Description...:
// Comments......:
// Revisions.....:
//===================================================================

bool
Attribute::Save(ofstream &stream) const {

	if (!IOKit::Save(stream, GetName()))
		return false;

	if (!IOKit::Save(stream, '\n'))
		return false;

	if (!IOKit::Save(stream, GetUnit()))
		return false;

	if (!IOKit::Save(stream, '\n'))
		return false;

	return true;

}

//-------------------------------------------------------------------
// Methods inherited from Structure.
//===================================================================

//-------------------------------------------------------------------
// Method........: Clear
// Author........: Aleksander 豩rn
// Date..........:
// Description...:
// Comments......:
// Revisions.....:
//===================================================================

void
Attribute::Clear() {
	SetName(Undefined::String());
	SetUnit(Undefined::String());
}

//-------------------------------------------------------------------
// Attribute field management methods.
//===================================================================

//-------------------------------------------------------------------
// Method........: GetName
// Author........: Aleksander 豩rn
// Date..........:
// Description...:
// Comments......:
// Revisions.....:
//===================================================================

const String &
Attribute::GetName() const {
	return name_;
}

//-------------------------------------------------------------------
// Method........: SetName
// Author........: Aleksander 豩rn
// Date..........:
// Description...:
// Comments......:
// Revisions.....:
//===================================================================

bool
Attribute::SetName(const String &name) {
	name_ = name;
	return true;
}

//-------------------------------------------------------------------
// Method........: GetUnit
// Author........: Aleksander 豩rn
// Date..........:
// Description...:
// Comments......:
// Revisions.....:
//===================================================================

const String &
Attribute::GetUnit() const {
	return unit_;
}

//-------------------------------------------------------------------
// Method........: SetUnit
// Author........: Aleksander 豩rn
// Date..........:
// Description...:
// Comments......:
// Revisions.....:
//===================================================================

bool
Attribute::SetUnit(const String &unit) {
	unit_ = unit;
	return true;
}

//-------------------------------------------------------------------
// Method........: GetScalingExponent
// Author........: Aleksander 豩rn
// Date..........:
// Description...:
// Comments......: Overloaded by attributes for which this is
//                 relevant.
// Revisions.....:
//===================================================================

int
Attribute::GetScalingExponent() const {
	return 0;
}

//-------------------------------------------------------------------
// Method........: SetScalingExponent
// Author........: Aleksander 豩rn
// Date..........:
// Description...:
// Comments......: Overloaded by attributes for which this is
//                 relevant.
// Revisions.....:
//===================================================================

bool
Attribute::SetScalingExponent(int /*exponent*/) {
	return false;
}

//-------------------------------------------------------------------
// Method........: IsNumeric
// Author........: Aleksander 豩rn
// Date..........:
// Description...:
// Comments......:
// Revisions.....:
//===================================================================

bool
Attribute::IsNumeric() const {
	return !IsString();
}

//-------------------------------------------------------------------
// Method........: IsSymbolic
// Author........: Aleksander 豩rn
// Date..........:
// Description...:
// Comments......:
// Revisions.....:
//===================================================================

bool
Attribute::IsSymbolic() const {
	return !IsNumeric();
}

//-------------------------------------------------------------------
// Method........: IsInteger
// Author........: Aleksander 豩rn
// Date..........:
// Description...:
// Comments......:
// Revisions.....:
//===================================================================

bool
Attribute::IsInteger() const {
	return (GetType() == TYPE_INTEGER);
}

//-------------------------------------------------------------------
// Method........: IsFloat
// Author........: Aleksander 豩rn
// Date..........:
// Description...:
// Comments......:
// Revisions.....:
//===================================================================

bool
Attribute::IsFloat() const {
	return (GetType() == TYPE_FLOAT);
}

//-------------------------------------------------------------------
// Method........: IsString
// Author........: Aleksander 豩rn
// Date..........:
// Description...:
// Comments......:
// Revisions.....:
//===================================================================

bool
Attribute::IsString() const {
	return (GetType() == TYPE_STRING);
}

//-------------------------------------------------------------------
// Method........: IsInterval
// Author........: Aleksander 豩rn
// Date..........:
// Description...:
// Comments......:
// Revisions.....:
//===================================================================

bool
Attribute::IsInterval() const {

	int i, no_entries = GetNoEntries();

	// Check if all entries are valid intervals.
	for (i = 0; i < no_entries; i++) {
		if (!Interval(GetEnumeratedEntry(i)).IsValid())
			return false;
	}

	return (no_entries > 0);

}


//-------------------------------------------------------------------
// Method........: GetNoEntries
// Author........: Aleksander 豩rn
// Date..........:
// Description...: Returns the number of different entries, i.e. the
//                 cardinality of the set of possible values for the
//                 attribute.
//
//                 Default implementation.  Typically overloaded for
//                 non-numeric attributes.  For numeric types, this
//                 is really infinity, but 0 is returned as default
//                 for safety reasons. (This method is typically used
//                 as a loop counter.)
// Comments......:
// Revisions.....:
//===================================================================

int
Attribute::GetNoEntries() const {
	return 0;
}

//-------------------------------------------------------------------
// Method........: GetEnumeratedEntry
// Author........: Aleksander 豩rn
// Date..........:
// Description...: Returns the specified distinct entry, i.e. the
//                 specified member (index) of the set of possible
//                 values for the attribute.
//
//                 Default implementation.  Typically overloaded for
//                 non-numeric attributes.
// Comments......:
// Revisions.....:
//===================================================================

const String &
Attribute::GetEnumeratedEntry(int /*entry_no*/) const {
	return Undefined::String();
}

//-------------------------------------------------------------------
// Method........: GetString
// Author........: Aleksander 豩rn
// Date..........:
// Description...:
// Comments......:
// Revisions.....:
//===================================================================

String
Attribute::GetString(Attribute::Type type) {

	switch (type) {
		case TYPE_INTEGER: return "Integer";
		case TYPE_FLOAT:   return "Float";
		case TYPE_STRING:  return "String";
		default:           return Undefined::String();
	}

}

//-------------------------------------------------------------------
// Operators.
//===================================================================

//-------------------------------------------------------------------
// Operator......: ==
// Author........: Aleksander 豩rn
// Date..........:
// Description...:
// Comments......:
// Revisions.....:
//===================================================================

bool
Attribute::operator==(const Attribute &in) const {

  // Are the two attributes physically equal?
  if (&in == this)
    return true;

	// Same domain type?
	if (!in.IsA(GetId()))
		return false;

	int no_entries = GetNoEntries();

	// Same domain size?
	if (in.GetNoEntries() != no_entries)
		return false;

	int i;

	// Same domain?
	for (i = 0; i < no_entries; i++) {
		if (in.GetEnumeratedEntry(i) != GetEnumeratedEntry(i))
			return false;
	}

  return true;

}

//-------------------------------------------------------------------
// Operator......: !=
// Author........: Aleksander 豩rn
// Date..........:
// Description...:
// Comments......:
// Revisions.....:
//===================================================================

bool
Attribute::operator!=(const Attribute &in) const {
  return !(*this == in);
}

//-------------------------------------------------------------------
// Operator......: <=
// Author........: Aleksander 豩rn
// Date..........:
// Description...: Determines if one attribute "covers" or is more
//                 general than another attribute.
// Comments......:
// Revisions.....:
//===================================================================

bool
Attribute::operator<=(const Attribute &in) const {

  // Are the two attributes physically equal?
  if (&in == this)
    return true;

	// Same domain type?
	if (!in.IsA(GetId()))
		return false;

	int i, j, no_entries = GetNoEntries();

	// Every element of this domain...
	for (i = 0; i < no_entries; i++) {

		String entry = GetEnumeratedEntry(i);

		bool present = false;

    // ...must be present in the other domain.
		for (j = 0; j < in.GetNoEntries(); j++) {
			present = (in.GetEnumeratedEntry(j) == entry);
			if (present)
				break;
		}

		if (!present)
			return false;

	}

  return true;

}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产成人aaa| 亚洲国产成人午夜在线一区| 欧美三级韩国三级日本一级| 欧美性大战xxxxx久久久| 欧洲一区二区三区在线| 欧美色手机在线观看| 欧美性xxxxxxxx| 5858s免费视频成人| 欧美挠脚心视频网站| 91精品国产综合久久精品| 6080日韩午夜伦伦午夜伦| 日韩一区二区免费在线电影| 日韩欧美电影一区| 久久精品视频网| 中文字幕中文字幕一区| 樱花草国产18久久久久| 亚洲一区二区精品视频| 日韩有码一区二区三区| 久久精品国产久精国产| 国产精一品亚洲二区在线视频| 国产不卡一区视频| 91年精品国产| 3d动漫精品啪啪一区二区竹菊| 日韩欧美国产wwwww| 国产日产欧美一区二区三区| 亚洲欧美另类小说| 亚洲第一在线综合网站| 久久国产夜色精品鲁鲁99| 丁香六月综合激情| 欧美在线制服丝袜| 日韩欧美中文字幕公布| 国产日韩精品一区| 亚洲成av人片一区二区三区| 国产在线视频不卡二| 99re成人在线| 日韩午夜激情电影| 国产精品污污网站在线观看| 亚洲综合小说图片| 国产又黄又大久久| 91蝌蚪porny| 日韩三级中文字幕| 国产精品视频观看| 天天色综合天天| 国产激情91久久精品导航 | 国产99精品视频| 91美女片黄在线观看91美女| 在线成人午夜影院| 一区在线中文字幕| 青青草97国产精品免费观看无弹窗版| 国产精品123| 欧美性xxxxxx少妇| 国产精品青草久久| 日本亚洲免费观看| 91香蕉视频mp4| 26uuu久久综合| 亚洲制服丝袜av| 国产高清亚洲一区| 欧美一卡2卡三卡4卡5免费| 国产精品久久影院| 国内精品嫩模私拍在线| 欧美日韩精品一二三区| 欧美国产1区2区| 日本va欧美va瓶| 在线看不卡av| 欧美国产成人精品| 激情综合色播五月| 欧美日韩精品欧美日韩精品| 中文字幕一区在线观看| 经典一区二区三区| 884aa四虎影成人精品一区| 亚洲日本va午夜在线影院| 国产一区二区影院| 91.xcao| 一区二区成人在线视频 | 欧美三级日韩在线| 国产精品福利一区二区| 国产一区二区精品久久99| 欧美日本乱大交xxxxx| 亚洲婷婷在线视频| 成人免费看片app下载| 久久网站最新地址| 蜜桃视频一区二区| 51精品视频一区二区三区| 尤物视频一区二区| 91免费国产在线| 国产女主播一区| 国产自产高清不卡| 久久综合久久久久88| 青青青伊人色综合久久| 欧美日韩国产成人在线91 | 91精品办公室少妇高潮对白| 国产精品久久久久久久久快鸭| 国产精品一二三在| 久久久综合网站| 国产一区二区伦理| 久久精品网站免费观看| 国产精品456露脸| 久久久欧美精品sm网站| 狠狠久久亚洲欧美| www一区二区| 国产一区二区精品在线观看| 久久久久久久网| 国产伦理精品不卡| 久久精品人人爽人人爽| 国产成人在线观看免费网站| 久久久久久久电影| 国产91精品精华液一区二区三区 | 日韩一区在线播放| 99精品在线观看视频| 综合久久给合久久狠狠狠97色 | 国产色产综合产在线视频| 国产精品一区二区三区99| 国产欧美日韩视频在线观看| 成人v精品蜜桃久久一区| 国产精品久久免费看| av一二三不卡影片| 一区二区高清在线| 91麻豆精品国产自产在线观看一区 | 欧美三日本三级三级在线播放| 亚洲一区二区三区四区五区黄| 欧美日本一道本| 国产在线精品一区二区夜色 | 国产乱色国产精品免费视频| 久久精子c满五个校花| 成人激情免费网站| 一区二区三区中文字幕在线观看| 欧美中文字幕一二三区视频| 免费在线看成人av| 国产婷婷一区二区| 色88888久久久久久影院野外| 亚洲综合色区另类av| 欧美一区欧美二区| 成人精品国产免费网站| 亚洲综合另类小说| 日韩免费观看2025年上映的电影| 国产一区二区免费在线| 欧美激情在线看| 欧美亚洲高清一区二区三区不卡| 日韩1区2区3区| 日本一区二区三区免费乱视频| 一本色道亚洲精品aⅴ| 男人的j进女人的j一区| 国产日韩高清在线| 欧美日韩精品一区二区| 国产精品一二三四区| 亚洲国产欧美另类丝袜| 精品国产第一区二区三区观看体验 | 成人黄动漫网站免费app| 亚洲国产日韩a在线播放性色| 精品久久国产老人久久综合| av在线不卡观看免费观看| 五月综合激情网| 欧美国产一区在线| 欧美日韩在线免费视频| 国产成人小视频| 丝袜脚交一区二区| 中文字幕亚洲电影| 日韩视频免费直播| 色婷婷av一区二区三区软件| 激情都市一区二区| 亚洲成a人v欧美综合天堂下载 | 看片的网站亚洲| 亚洲色大成网站www久久九九| 日韩欧美自拍偷拍| 欧美制服丝袜第一页| 成人免费电影视频| 久久电影网站中文字幕 | 成a人片国产精品| 美日韩黄色大片| 一区二区三区资源| 国产女同性恋一区二区| 日韩欧美亚洲国产另类| 在线免费观看成人短视频| 成人激情开心网| 激情综合色综合久久综合| 亚洲成人www| 一区二区三区在线播放| 国产精品视频一二| 久久亚洲一区二区三区明星换脸| 欧美日韩国产小视频| 色婷婷av一区二区三区之一色屋| 国产91在线|亚洲| 久久激情五月婷婷| 三级不卡在线观看| 亚洲精品成人精品456| 国产精品福利一区二区三区| 国产日本欧洲亚洲| 久久奇米777| 精品成人一区二区三区四区| 91精品国产91综合久久蜜臀| 欧美伊人久久久久久久久影院| 91麻豆.com| 91小宝寻花一区二区三区| av综合在线播放| 成人福利视频在线看| 成人午夜电影小说| 懂色av一区二区在线播放| 国产一区在线看| 黄色小说综合网站| 九一九一国产精品|