📄 category.cpp
字号:
#include <string>
#include <vector>
#include <iterator>
#include "Category.h"
#include "Listing.h"
using namespace std;
Category::Category(void)
{
number=0;
parent=0;
name="";
/*sub_categories=NULL;
items=NULL;*/
}
Category::Category(int parent, string name)
{
this->parent=parent;
this->name=name;
}
int Category::getNumber(void) const
{
return this->number;
}
int Category::getParent(void) const
{
return this->parent;
}
string Category::getName(void) const
{
return this->name;
}
void Category::setNumber(int num)
{
number=num;
}
void Category::setParent(int par)
{
parent=par;
}
void Category::setName(string nm)
{
name=nm;
}
void Category::addSubCategory(Category* cago)
{
sub_categories.push_back(cago);
}
void Category::addItem(int num)
{
items.push_back(num);
}
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::findOfferings (Listing::iterator start,
Listing::iterator finish, Listing &matches)
{
Listing::iterator itr_adv;
for (vector<int>::iterator current=items.begin();current!=items.end();current++)
{
for (itr_adv=start;itr_adv!=finish;itr_adv++)
{
int adv_num=(*current);
if((*itr_adv)->getNumber()==adv_num)
{
matches.add(*itr_adv);
break;
}
}
}
}
void Category::findOfferingsRecursive (Listing::iterator start,
Listing::iterator finish, Listing &matches)
{
findOfferings(start,finish,matches);
if (sub_categories.size()==0) return;
vector<Category*>::iterator itr_subcate;
for(itr_subcate=subCategoriesBegin();itr_subcate!=subCategoriesEnd();itr_subcate++)
(*itr_subcate)->findOfferingsRecursive (start, finish,matches);
}
bool Category::operator==(const Category& rhs)
{
return this->number==rhs.getNumber();
}
istream &operator>>(istream &stream, Category &c)
{
int parent_id;
string name;
(stream>>parent_id).get();
(stream>>name).get();
c.setParent(parent_id);
c.setName(name);
return stream;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -