category.cpp
来自「1.注册功能 2.登录功能 3.退出系统功能 4.发布新广告功能 5.添」· C++ 代码 · 共 114 行
CPP
114 行
#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 + =
减小字号Ctrl + -
显示快捷键?