⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 categoryhierarchy.cpp

📁 exam3 ssd5的
💻 CPP
字号:
#pragma warning(disable:4786)

#include <algorithm>
#include "CategoryHierarchy.h"

using namespace std;

const int CategoryHierarchy::NO_PARENT = -1;

Category* CategoryHierarchy::operator[](const int& number) {

	CategoryHierarchy::iterator it;

	for (it = this->begin(); it != this->end(); it++) {
		if ((*it)->getNumber() == number) {
			return *it;
		}
	}
	return NULL;
}


void CategoryHierarchy::findOfferings (int category, Listing::iterator start, 
					Listing::iterator finish, Listing &matches) {
	
	Category* cat = this->operator [](category);
	for (Listing::iterator it = start; it != finish; it++) {
		
		vector<int>::iterator search;
		search = find(cat->itemsBegin(), cat->itemsEnd(), (*it)->getNumber());
		if (search != cat->itemsEnd()) {
			matches.add(*it);
		}
	}

}

void CategoryHierarchy::findOfferingsRecursive (int category, Listing::iterator start, 
					Listing::iterator finish, Listing &matches) {

	findOfferings(category, start, finish, matches);

	vector<int>::iterator it;
	Category* c = this->operator [](category);
	for (it = c->subCategoriesBegin(); it != c->subCategoriesEnd(); it++) {
		findOfferingsRecursive(*it, start, finish, matches);
	}
}

void CategoryHierarchy::add(Category* ptr) {
    objects.push_back (ptr);
}

CategoryHierarchy::iterator CategoryHierarchy::begin() {
	return objects.begin();
}

CategoryHierarchy::iterator CategoryHierarchy::end() {
	return objects.end();
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -