Programación del diccionario
# incluir & ltiostream & gt
# incluir & ltmap& gt
# incluir & ltlist& gt
# incluir & ltString& gt
Usar espacio de nombres estándar
Estructurar información de nacimiento
{
int mes;
int día
Información de nacimiento ()
{
Mes = 0;
día = 0; p>Operador booleano == (información constante de nacimiento y derecho) constante
{
if (mes == RHS . mes y día == día relativo)
{
Devuelve verdadero
}
Devuelve falso
}
Operador booleano & lt (información constante de nacimiento y rhs) constante
{
if (mes & ltrhs.mes)
{
Devuelve verdadero
}
else if (mes == RHS . mes)
{
if (día & lt; rhs.day)
{
devuelve verdadero
}
}
Devuelve falso
}
};
Estructura SameBirthInfo
{
int nCount
List<String>StrNoList
SameBirthInfo()
{
nCount = 0;
}
};
mapeo de typedef & ltBirthInfo , SameBirthInfo & gt resultado;
int main()
{
int nstudent count = 0;
string strNo="" ;
BirthInfo BirInfo
resultado;
misma información de nacimiento misma información de nacimiento ;
CIN>>nStudentCount
while(nStudentCount->0)
{
CIN>& gtstrNo & gt& gtBirInfo.month & gt& gtBirInfo.day
resultado::iterador ITER = resultado . buscar (BirInfo);
if (ITER == resultado . end ())
{
//No encontrado
pair & lt result::iterator, bool & gtpins ret = Result insert (Resultado::value_type (BirInfo, misma información de nacimiento));
if (pins ret. segundo)
{
pins ret. primero-> segundo. //Registra que hay una persona en este cumpleaños.
pins ret.primero->Segundo.
strnolist.push_back(strNo);? //Registra el número de estudiante de esta persona.
}
}
Otros
{
//Buscar
ITER ->segundo .ncount++;//El mismo número de personas en Amanome++
iter->Segundo. strnolist.push_back(strNo); //Guarda el número de estudiante.
}
}
//Emitir todos los resultados
resultado::const _ iterator cIter = resultado .begin();
while(cIter!= result.end()
{
//Primero genera el cumpleaños
cout & lt& ltcIter-& gt ;El primer mes<& lt"""& lt& ltcIter-& gt;El primer día;
//Ingrese todos los números de identificación de los estudiantes.
Lista<String> * const _ iterator cStrIter = cIter -> second.strnolist.begin();
mientras (cStrIter! = cIter->segundo.StrNoList.end())
{
cout & lt& lt"""& lt& ltcStrIter->c_str();
++ cStrIter;
}
cout & lt& ltendl
++ cIter;
}
Devuelve 0
} p>