Colección de citas famosas - Colección de poesías - Programación del diccionario

Programación del diccionario

El cartel original pidió usar C, lo cual es problemático. Sería mucho más conveniente si usaras C++. No tengo nada que hacer, así que lo anoté y eché un vistazo.

# 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

}