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

📄 category.cpp

📁 sdd5练习1-4答案
💻 CPP
字号:
#include "Category.h"
#include <iostream>

Category::Category():number(0),parent(0) {}

Category::Category(int parent, std::string name):number(0),parent(parent),name(name) {}

string Category::getName() const {
	return this->name;
}

int Category::getNumber() const {
	return this->number;
}

int Category::getParent() const {
	return this->parent;
}

void Category::setName(std::string name) {
	this->name = name;
}

void Category::setNumber(int number) {
	this->number = number;
}

void Category::setParent(int parent) {
	this->parent = parent;
}

vector<int>::iterator Category::itemsBegin() {
	return this->items.begin();
}

vector<int>::iterator Category::itemsEnd() {
	return this->items.end();
}

vector<Category*>::iterator Category::subCategoriesBegin() {
	return this->sub_categories.begin();
}

vector<Category*>::iterator Category::subCategoriesEnd() {
	return this->sub_categories.end();
}

void Category::addItem(int item) {
	this->items.push_back(item);

}

void Category::addSubCategory(Category * category) {
	this->sub_categories.push_back(category);
}

void Category::findOfferings(Listing::iterator start, Listing::iterator finish, Listing &matches) {
	Listing::iterator iter = start;
	while(iter != finish) {
		vector<int>::iterator it = items.begin();
		while(it != items.end()) {
			if ((*iter)->getNumber() == *it)
				matches.add(*iter);
			it ++;
		}
		iter ++;
	}
}

void Category::findOfferingsRecursive(Listing::iterator start, Listing::iterator finish, Listing &matches) {
	this->findOfferings(start,finish,matches);
	for (vector<Category*>::iterator i = this->sub_categories.begin(); i != this->sub_categories.end(); i ++) {
		(*i)->findOfferingsRecursive(start,finish,matches);
	}
}

istream &operator>>(istream &stream, Category &c) {
	string name;
	int parent;
	stream>>parent>>name;
	
	c.setName(name);
	c.setParent(parent);
	return stream;
}

bool Category::operator ==(const Category &rhs) {
	if(this->number = rhs.getNumber())
		return true;
	return false;
}

⌨️ 快捷键说明

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