Job Recruitment Website - Job seeking and recruitment - Which hero accompanied me to write a c++ program: recruitment information management system.

Which hero accompanied me to write a c++ program: recruitment information management system.

First, write the function of the query.

I hope you can learn a little from it and then write other functions.

# pragma once//v 3 . 0 . 522322. 12 1 18002

///////////////////////////////////////////////////////

//contents: definition of line class type of cJOB

//Name: Cjob_rowtype

Cjob_rowtype class {

Public:

Long m _ iSuffix// suffix 1

STD::string m _ str company; //Employer.2 (i)

STD::string m _ str speciality; //Professionals.3 (i)

Int m _ EducationalLevel///education4 (i)

Long m _ iNumber// number of people

Public:

Cjob_rowtype()

{

m _ I suffix = 0;

m _ strCompany =

m _ strSpeciality =

m _ educational level = 0;

m _ iNumber = 0;

}

virtual ~ Cjob _ rowtype(){; }

Public:

/////////////////////////////////////////////////////////////

//function: GetCol_iSuffix

//effect: get the ref of col. col as iSuffix

//Return: Long &

Dragon & ampGetCol_iSuffix(void)

{

Returns m _ iSuffix

}

/////////////////////////////////////////////////////////

//function: GetCol_strSpeciality

//Effect: The ref. col of the obtained column is strSpeciality.

//return: STD:: string &;

STD::string & amp; GetCol_strSpeciality(void)

{

Returns m _ strSpeciality

}

///////////////////////////////////////////////////////////////

//function: GetCol_EducationalLevel

//effect: the ref of col. col is EducationalLevel.

//Return:int & amp;

int & ampGetCol_EducationalLevel(void)

{

Returns m _ EducationalLevel

}

}

;

End of Cjob _ rowtype class

///////////////////////////////////////////////////////

//Contents:TBL class type definition

//Name: Cjob

Cjob class {

Private:

Cjob _ rowtype m _ EmptyRow

STD::vector & lt; Cjob _ rowtype & gtm _ DATAcorpora

STD::multimap & lt; std::string,long & gtm _ strCompany _ idxmmap

STD::multimap & lt; std::string,long & gtm _ strSpeciality _ idxmmap

STD::multimap & lt; int,long & gtm _ EducationalLevel _ idxmmap

Public:

typedef Cjob _ rowtype ROWTYPE

typedef STD::vector & lt; Long & gtRPSTYPE//RPS (Return Pointer Set) Type Definition

typedef STD::vector & lt; Cjob _ rowtype & gt* iterator TBLITTYPE

Public:

Cjob()

{

}

virtual ~ Cjob(){; }

Public:

////////////////////////////////////////////////////////////

//Function: Clear

//Effect: Clear tbl.

//Return: No return.

Empty clear (empty)

{

m _ data corpora . clear();

m _ str company _ idxmmap . clear();

m _ strSpeciality _ idxmmap . clear();

m _ educational level _ idxmmap . clear();

}

//////////////////////////////////////////////////////////

//function: GetRowCount

//Effect: Get the number of lines of tbl.

//return: long

long GetRowCount()

{

return(long)m _ data corpora . size();

}

////////////////////////////////////////////////////////////////

//function: GetRowCount

//Effect: Get the number of tbl rows according to RPS.

//return: long

long GetRowCount(const STD::vector & lt; long & gt& ampvRps)

{

return(long)vrps . size();

}

////////////////////////////////////////////////////////////////

//function: GetRow

//Effect: Get a specified line.

//Return:Cjob _ rowtype & amp;

Cjob _ rowtype & ampGetRow(long lRowNum)

{

if(lRowNum & gt; = 0 & amp& amplRowNum & lt(long)m_DATAcorpora.size())

return m _ data corpora[lRowNum];

other

{

Cjob _ rowtype tmpEmptyrow

m _ EmptyRow = tmpEmptyrow

Returns m _ EmptyRow.

}

}

///////////////////////////////////////////////////////////////

//function: GetRow

//Effect: Get a specified line in RPS.

//Return:Cjob _ rowtype & amp;

Cjob _ rowtype & ampGetRow(const STD::vector & lt; long & gt& ampvRps,long lRowNum)

{

Long ltmp

Do {

{

Cjob _ rowtype tmpEmptyrow

m _ EmptyRow = tmpEmptyrow

}

ltmp = lRowNum

if(ltmp & lt; 0) returns m _ EmptyRow.

if(ltmp & gt; =(long)vRps.size ()) returns m _ EmptyRow.

ltmp = vRps[lRowNum];

if(ltmp & lt; 0) returns m _ EmptyRow.

if(ltmp & gt; = (long) m _ datacorporation.size ()) returns m _ EmptyRow.

return m _ data corpora[ltmp];

} while(0);

}

////////////////////////////////////////////////////////

//Function: adding

//Effect: Add a specified line and build an index.

//Return: No return.

void Add(const Cjob _ rowtype & amp; varRow)

{

m _ data corpora . push _ back(varRow);

m_strCompany_idxmmap.insert(

STD::pair & lt; std::string,long & gt(

varRow.m_strCompany,

(long)(m _ data corpora . size()- 1));

m_strSpeciality_idxmmap.insert(

STD::pair & lt; std::string,long & gt(

varRow.m_strSpeciality,

(long)(m _ data corpora . size()- 1));

m _ educational level _ idxmmap . insert(

STD::pair & lt; int,long & gt(

varRow.m_EducationalLevel,

(long)(m _ data corpora . size()- 1));

}

////////////////////////////////////////////////////////////////

//function: SelG_iSuffix

//Effect: Select and build RPS, in which col & gtval uses wires.

//Return: No return.

void SelG_iSuffix(long iVal,STD::vector & lt; Long & gt& ampvRps) // (not applicable)

{

for(long ltmp = 0; ltmp & lt(long)m _ data corpora . size(); ltmp++)

if(m_DATAcorpora[ltmp].m _ iSuffix & gtiVal)

vrps . push _ back(ltmp);

}

//////////////////////////////////////////////////////////////

//function: SelGc_iSuffix

//Effect: Select and build RPS, in which col> Val. Clear rps first.

//Return: No return.

void SelGc_iSuffix(long iVal,STD::vector & lt; long & gt& ampvRps)

{

vrps . clear();

SelG_iSuffix(iVal,vRps);

}

////////////////////////////////////////////////////////////

//function: SelG_strSpeciality

//Effect: Select and build RPS, in which col & gtval uses exponent.

//Return: No return.

void SelG _ str speciality(STD::string Val,STD::vector & lt; long & gt& ampvRps) //(i)

{

for(STD::multimap & lt; Std::string, long & gt* iterator it = m _ strspecificity _ idxmmap.upper _ bound (val);

It! = m _ strSpeciality _ idxmmap . end(); ++it)

vrps . push _ back(it-& gt; Second);

}

//////////////////////////////////////////////////////////

//function: selgc _ str specificity

//Effect: Select and build RPS, in which col> Val. Clear rps first.

//Return: No return.

void SelGc _ str speciality(STD::string Val,STD::vector & lt; long & gt& ampvRps)

{

vrps . clear();

SelG_strSpeciality(Val,vRps);

}

///////////////////////////////////////////////////////

//function: SelG_EducationalLevel

//Effect: Select and build RPS, in which col & gtval uses exponent.

//Return: No return.

void SelG _ education allelevel(int iVal,STD::vector & lt; long & gt& ampvRps) //(i)

{

for(STD::multimap & lt; Int, long & gt* iterator it = m _ educational level _ idxmmap.upper _ bound (ival);

It! = m _ education allelevel _ idxmmap . end(); ++it)

vrps . push _ back(it-& gt; Second);

}

////////////////////////////////////////////////////////

//function: SelGc_EducationalLevel

//Effect: Select and build RPS, in which col> Val. Clear rps first.

//Return: No return.

void SelGc _ education allelevel(int iVal,STD::vector & lt; long & gt& ampvRps)

{

vrps . clear();

SelG_EducationalLevel(iVal,vRps);

}

///////////////////////////////////////////////////////////

//function: SelE_iSuffix

//Effect: Select and build RPS, where col=val uses traversal.

//Return: No return.

void SelE_iSuffix(long iVal,STD::vector & lt; Long & gt& ampvRps) // (not applicable)

{

for(long ltmp = 0; ltmp & lt(long)m _ data corpora . size(); ltmp++)

if(m_DATAcorpora[ltmp].m_iSuffix==iVal)

vrps . push _ back(ltmp);

}

////////////////////////////////////////////////////////

//function: SelE 1_iSuffix

//Effect: Select the line 1st, where col=val, or return the default line.

//Return:Cjob _ rowtype & amp;

Cjob _ rowtype & ampSelE 1_iSuffix(long iVal)

{

STD::vector & lt; long & gtvRps

SelE_iSuffix( iVal,vRps);

Returns GetRow( vRps, 0);

}

////////////////////////////////////////////////////////

//function: SelEc_iSuffix

//Effect: Select and build RPS with col=val. Clear rps first.

//Return: No return.

void SelEc_iSuffix(long iVal,STD::vector & lt; long & gt& ampvRps)

{

vrps . clear();

SelE_iSuffix(iVal,vRps);

}

/////////////////////////////////////////////////////////////////

//function: SelNE_iSuffix

//Effect: Select and build RPS where col! =val

//Return: No return.

void SelNE_iSuffix(long iVal,STD::vector & lt; long & gt& ampvRps)

{

SelL_iSuffix(iVal,vRps);

SelG_iSuffix(iVal,vRps);

}

///////////////////////////////////////////////////////////

//function: SelNEc_iSuffix

//Effect: Select and build RPS where col! =val。 Clear rps first.

//Return: No return.

void SelNEc_iSuffix(long iVal,STD::vector & lt; long & gt& ampvRps)

{

vrps . clear();

SelNE_iSuffix(iVal,vRps);

}

////////////////////////////////////////////////////////

//function: SelE_strSpeciality

//Effect: Select and build RPS, where col=val uses index.

//Return: No return.

void SelE _ str speciality(STD::string Val,STD::vector & lt; long & gt& ampvRps) //(i)

{

STD::pair & lt; STD::multimap & lt; Std::string, long & gt* iterator, STD:: multimap <; Std::string, long & gt* iterator & gtpa;;

pa = m _ strSpeciality _ idxmmap . equal _ range(Val);

for(STD::multimap & lt; Std::string, long & gt* iterator it = pa.first it! = pa.second++it)

vrps . push _ back(it-& gt; Second);

}

///////////////////////////////////////////////////////

//function: sele1_ str specificity

//Effect: Select the line 1st, where col=val, or return the default line.

//Return:Cjob _ rowtype & amp;

Cjob _ rowtype & ampsele 1 _ str speciality(STD::string Val)

{

STD::vector & lt; long & gtvRps

SelE_strSpeciality( Val,vRps);

Returns GetRow( vRps, 0);

}

///////////////////////////////////////////////////////

//function: SelEc_strSpeciality

//Effect: Select and build RPS with col=val. Clear rps first.

//Return: No return.

void SelEc _ str speciality(STD::string Val,STD::vector & lt; long & gt& ampvRps)

{

vrps . clear();

SelE_strSpeciality(Val,vRps);

}

///////////////////////////////////////////////////////////

//function: selne _ str specificity

//Effect: Select and build RPS where col! =val

//Return: No return.

void SelNE _ str speciality(STD::string Val,STD::vector & lt; long & gt& ampvRps)

{

SelL_strSpeciality(Val,vRps);

SelG_strSpeciality(Val,vRps);

}

////////////////////////////////////////////////////////////

//function: selnec _ str specificity

//Effect: Select and build RPS where col! =val。 Clear rps first.

//Return: No return.

void SelNEc _ str speciality(STD::string Val,STD::vector & lt; long & gt& ampvRps)

{

vrps . clear();

SelNE_strSpeciality(Val,vRps);

}

/////////////////////////////////////////////////////////////

//function: SelE_EducationalLevel

//Effect: Select and build RPS, where col=val uses index.

//Return: No return.

void SelE _ education allelevel(int iVal,STD::vector & lt; long & gt& ampvRps) //(i)

{

STD::pair & lt; STD::multimap & lt; Int, long & gt* iterator, STD:: multimap <; Int, long & gt* iterator & gtpa;;

pa = m _ educational level _ idxmmap . equal _ range(iVal);

for(STD::multimap & lt; Int, long & gt* iterator it = pa.first it! = pa.second++it)

vrps . push _ back(it-& gt; Second);

}

/////////////////////////////////////////////////////////////

//function: sele1_ educationlevel

//Effect: Select the line 1st, where col=val, or return the default line.

//Return:Cjob _ rowtype & amp;

Cjob _ rowtype & ampsele 1 _ Education level (international)

{

STD::vector & lt; long & gtvRps

SelE_EducationalLevel( iVal,vRps);

Returns GetRow( vRps, 0);

}

/////////////////////////////////////////////////////////////

//function: SelEc_EducationalLevel

//Effect: Select and build RPS with col=val. Clear rps first.

//Return: No return.

void SelEc _ education allelevel(int iVal,STD::vector & lt; long & gt& ampvRps)

{

vrps . clear();

SelE_EducationalLevel(iVal,vRps);

}

////////////////////////////////////////////////////////

//function: SelNE_EducationalLevel

//Effect: Select and build RPS where col! =val

//Return: No return.

void SelNE _ education allelevel(int iVal,STD::vector & lt; long & gt& ampvRps)

{

SelL_EducationalLevel(iVal,vRps);

SelG_EducationalLevel(iVal,vRps);

}

//////////////////////////////////////////////////////////////

//function: SelNEc_EducationalLevel

//Effect: Select and build RPS where col! =val。 Clear rps first.

//Return: No return.

void SelNEc _ education allelevel(int iVal,STD::vector & lt; long & gt& ampvRps)

{

vrps . clear();

SelNE_EducationalLevel(iVal,vRps);

}

///////////////////////////////////////////////////////////

//function: SelL_iSuffix

//effect: select and build RPS, where col & ltval uses wires.

//Return: No return.

void SelL_iSuffix(long iVal,STD::vector & lt; Long & gt& ampvRps) // (not applicable)

{

for(long ltmp = 0; ltmp & lt(long)m _ data corpora . size(); ltmp++)

if(m_DATAcorpora[ltmp].m _ iSuffix & ltiVal)

vrps . push _ back(ltmp);

}

//////////////////////////////////////////////////////////

//function: SelLc_iSuffix

//effect: select and build RPS, where col < val. Clear rps first.

//Return: No return.

void SelLc_iSuffix(long iVal,STD::vector & lt; long & gt& ampvRps)

{

vrps . clear();

SelL_iSuffix(iVal,vRps);

}

///////////////////////////////////////////////////////

//function: sell _ str specificity

//Effect: Select and build RPS, in which col & ltval uses exponent.

//Return: No return.

void SelL _ str speciality(STD::string Val,STD::vector & lt; long & gt& ampvRps) //(i)

{

STD::pair & lt; STD::multimap & lt; Std::string, long & gt* iterator, STD:: multimap <; Std::string, long & gt* iterator & gtpa;;

pa = m _ strSpeciality _ idxmmap . equal _ range(Val);

for(STD::multimap & lt; Std::string, long & gt* iterator it = m _ strspecificity _ idxmmap.begin (); It! = pa.first++it)

vrps . push _ back(it-& gt; Second);

}

/////////////////////////////////////////////////////////////

//function: SelLc_strSpeciality

//effect: select and build RPS, where col < val. Clear rps first.

//Return: No return.

void SelLc _ str speciality(STD::string Val,STD::vector & lt; long & gt& ampvRps)

{

vrps . clear();

SelL_strSpeciality(Val,vRps);

}

///////////////////////////////////////////////////////////////

//function: SelL_EducationalLevel

//Effect: Select and build RPS, in which col & ltval uses exponent.

//Return: No return.

void SelL _ educational level(int iVal,STD::vector & lt; long & gt& ampvRps) //(i)

{

STD::pair & lt; STD::multimap & lt; Int, long & gt* iterator, STD:: multimap <; Int, long & gt* iterator & gtpa;;

pa = m _ educational level _ idxmmap . equal _ range(iVal);

for(STD::multimap & lt; Int, long & gt* iterator it = m _ educational level _ idxmmap.begin (); It! = pa.first++it)

vrps . push _ back(it-& gt; Second);

}

///////////////////////////////////////////////////////////////

//function: SelLc_EducationalLevel

//effect: select and build RPS, where col < val. Clear rps first.

//Return: No return.

void SelLc _ education allelevel(int iVal,STD::vector & lt; long & gt& ampvRps)

{

vrps . clear();

SelL_EducationalLevel(iVal,vRps);

}

////////////////////////////////////////////////////////////

//function: RpsAnd

//Effect: Set intersection for RPS. Varrpsource1is also the result.

//Return:RPSTYPE & amp;

RPSTYPE & ampRPS and(RPS type & amp; varRpsSource 1,RPSTYPE & ampvarRpsSource2)

{

STD::sort(varrpssource 1 . begin()、varrpssource 1 . end());

std::sort( varRpsSource2.begin()、varrpssource 2 . end());

RPS type source 3(varrpssource 1 . size()+varrpssource 2 . size());

RPSTYPE::iterator it newend 2 = STD::set _ intersection(

varRpsSource 1.begin()、varRpsSource 1.end()、varRpsSource2.begin()、varRpsSource2.end()、source 3 . begin();

varrpssource 1 . clear();

for(RPSTYPE::iterator it = source 3 . begin(); It! = itNewEnd2++ it)varrpssource 1 . push _ back(* it);

Returns varrpsource1;

}

//////////////////////////////////////////////////////////

//function: RpsOr

//Effect: Set union for RPS. Varrpsource1is also the result.

//Return:RPSTYPE & amp;

RPSTYPE & ampRPS or(RPS type & amp; varRpsSource 1,RPSTYPE & ampvarRpsSource2)

{

STD::sort(varrpssource 1 . begin()、varrpssource 1 . end());

std::sort( varRpsSource2.begin()、varrpssource 2 . end());

RPS type source 3(varrpssource 1 . size()+varrpssource 2 . size());

RPSTYPE::iterator it newend 2 = STD::set _ union(

varRpsSource 1.begin()、varRpsSource 1.end()、varRpsSource2.begin()、varRpsSource2.end()、source 3 . begin();

varrpssource 1 . clear();

for(RPSTYPE::iterator it = source 3 . begin(); It! = itNewEnd2++ it)varrpssource 1 . push _ back(* it);

Returns varrpsource1;

}

}

;

End of Cjob class