📄 category.cpp
字号:
#include"Category.h"
#include<iostream>
using namespace std;
Category::Category(void):number(0),parent(0),name(""){}
Category::Category(int parent, string name){
this->parent = parent;
this->name = name;
}
int Category::getNumber() const{
return number;
}
int Category::getParent() const{
return parent;
}
string Category::getName() const{
return name;
}
void Category::setNumber(int i){
number = i;
}
void Category::setParent(int j){
parent = j;
}
void Category::setName(string k){
name = k;
}
vector<int>::iterator Category::itemsBegin(){
return items.begin();
}
vector<int>::iterator Category::itemsEnd(){
return items.end();
}
vector<Category*>::iterator Category::subCategoriesBegin(){
return sub_categories.begin();
}
vector<Category*>::iterator Category::subCategoriesEnd(){
return sub_categories.end();
}
void Category::addSubCategory(Category* m){
sub_categories.push_back(m);
}
void Category::addItem(int n){
items.push_back(n);
}
void Category::findOfferings (Listing::iterator start,
Listing::iterator finish, Listing &matches){
Listing::iterator i;
vector<int>::iterator j;
for(i = start; i != finish; i++){
for(j = itemsBegin(); j != itemsEnd() ; j++){
if(*j = (*i)->getNumber()){
matches.add(*i);
}
}
}
}
void Category::findOfferingsRecursive (Listing::iterator start,
Listing::iterator finish, Listing &matches){
Listing::iterator m;
vector<int>::iterator n;
vector<Category*>::iterator p;
for(m = start; m != finish; m++){
for(n = itemsBegin(); n != itemsEnd() ; n++){
if(*n = (*m)->getNumber()){
matches.add(*m);
}
}
}
for(p = subCategoriesBegin(); p != subCategoriesEnd(); p++){
(*p) -> findOfferingsRecursive(start, finish, matches) ;
}
}
bool Category::operator==(const Category& rhs){
return number == rhs.getNumber();
}
istream &operator>>(istream &stream, Category &c){
int i;
string j;
stream >> i;
stream.get();
c.setParent(i);
getline(stream,j);
c.setName(j);
return stream;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -