本文整理汇总了C++中Lista::longitud方法的典型用法代码示例。如果您正苦于以下问题:C++ Lista::longitud方法的具体用法?C++ Lista::longitud怎么用?C++ Lista::longitud使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Lista
的用法示例。
在下文中一共展示了Lista::longitud方法的12个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: while
Lista<int> JJOO::generarRanking(const Competencia& competencia) const {
// Guardo acá el ranking construído.
Lista<int> ranking;
Lista<Atleta> participantesSinRankear = competencia.participantes();
// Rankeo todos los participantes hasta quedarme sin participantes para rakear.
while(participantesSinRankear.longitud() > 0) {
// Busco el participante con menos capacidad entre los que aún no fueron rankeados.
Atleta peorParticipante;
int i = 0;
while(i < participantesSinRankear.longitud()) {
Deporte deporte = competencia.categoria().first;
Atleta participante = participantesSinRankear.iesimo(i);
// En caso de ser el peor hasta el momento, me quedo con el participante i-ésimo.
if(i == 0 || participante.capacidad(deporte) < peorParticipante.capacidad(deporte)) {
peorParticipante = participante;
}
i++;
}
// Agrego el peor participante hallado al principio del ranking.
ranking.agregar(peorParticipante.ciaNumber());
// Lo elimino de la lista de participantes sin rankear.
participantesSinRankear.eliminarPosicion(participantesSinRankear.posicion(peorParticipante));
}
return ranking;
}
示例2: maximaDistanciaEntreJornadas
int JJOO::maximaDistanciaEntreJornadas(Lista<int> jornadas) const {
// Puedo asumir que recibo dos o más jornadas.
// Guardo acá las distancias calculadas.
Lista<int> distancias;
// Calculo todas las distancias entre jornadas.
int i = 1;
while (i < jornadas.longitud()){
distancias.agregarAtras(jornadas.iesimo(i) - jornadas.iesimo(i - 1));
i++;
}
// Busco la máxima distancia.
int maximaDistancia;
i = 0;
while(i < distancias.longitud()) {
if(i == 0 || distancias.iesimo(i) > maximaDistancia) {
maximaDistancia = distancias.iesimo(i);
}
i++;
}
return maximaDistancia;
}
示例3:
Lista<DNI> Hotel::sacarRepetidos(const Lista<DNI>& dnis) const {
Lista<DNI> result;
int i = 0;
int longitud = dnis.longitud();
//Pc: i == 0 $ \land $ longitud == $ |dnis| $ $ \land $ result == []
//B: i < longitud
while( i < longitud ){
//Fv: longitud - i
//Cota: 0
//I: 0$ \leq $i$ \leq $longitud $ \land $ longitud == $ |dnis| $ $ \land $ result == [$ dnis_k $| k$ \selec $[0..i), ($ \lnot $$ \exists $j$ \selec $[0..k)) $ dnis_j $ == $ dnis_k $]
//Estado e1
//Vale B $ \land $ I
if( !result.pertenece(dnis.iesimo(i)) ){
result.agregarAtras(dnis.iesimo(i));
}
//Qif:(($ dnis_i $ $ \in $ result) $ \land $ (result == [email protected]) )$ \lor $( ($ dnis_i $ $ \notin $ result) $ \land $ (result == [email protected] ++ [$ dnis_i $]))
//estado e2
//vale Qif $ \land $ i == [email protected]
i++;
//estado e3
//vale i == [email protected] + 1 $ \land $ result == [email protected]
}
//Qc: result == [$ dnis_i $| i$ \selec $[0..longitud), ($ \lnot $$ \exists $j$ \selec $[0..i)) $ dnis_j $ == $ dnis_i $]
return result;
//vale result == [$ dnis_i $| i$ \selec $[0..longitud), ($ \lnot $$ \exists $j$ \selec $[0..i)) $ dnis_j $ == $ dnis_i $]
}
示例4: MostrarAtletas
void MostrarAtletas(Lista<Atleta> atletas, string titulo)
{
int tam = atletas.longitud();
cout << titulo << endl;
for (int i = 0; i < tam; i++)
{
cout << i << " : " << atletas.iesimo(i).nombre() << endl;
}
}
示例5: cerrarSalasDeLaCadenaC
void Cine::cerrarSalasDeLaCadenaC(Lista<Cine> &cs, int e) const{
int i = 0;
while (i<cs.longitud())
{
Cine csi;
csi = cs.iesimo(0);
csi.cerrarSalasC(e);
cs.agregarAtras(csi);
cs.eliminarPosicion(0);
i=i+1;
}
}
示例6: TestTicket
void TestTicket()
{
Ticket a(pelis[0],1,1);
Ticket b(pelis[1],2,0);
Ticket c(pelis[2],3,1);
if(!(a.peliculaT()==pelis[0])) fallo=1,cout<<"Falla peliculaT"<<endl;
if(!(b.peliculaT()==pelis[1])) fallo=1,cout<<"Falla peliculaT"<<endl;
if(!(c.peliculaT()==pelis[2])) fallo=1,cout<<"Falla peliculaT"<<endl;
if(a.salaT()!=1) fallo=1,cout<<"Falla salaT"<<endl;
if(b.salaT()!=2) fallo=1,cout<<"Falla salaT"<<endl;
if(c.salaT()!=3) fallo=1,cout<<"Falla salaT"<<endl;
Lista<Ticket> ts;
ts.agregarAtras(b);
ts.agregarAtras(b);
ts.agregarAtras(b);
if(!a.usadoT()) fallo=1,cout<<"Falla usadoT" << endl;
if(b.usadoT()) fallo=1,cout<<"Falla usadoT" << endl;
if(!c.usadoT()) fallo=1,cout<<"Falla usadoT" << endl;
b.usarT();
if(!b.usadoT()) fallo=1,cout<<"Falla usarT" << endl;
ts.agregarAtras(b);
Lista<Ticket> ts3;
ts3 = ts;
ts.agregarAtras(a);
ts.agregarAtras(c);
ts.agregarAtras(a);
ts.agregarAtras(c);
if(!(a.peliculaMenosVistaT(ts)==pelis[1])) fallo=1,cout<<"Falla peliculaMenosVistaT" << endl;
Lista<Ticket> ts2;
ts2 = ts;
ts = a.cambiarSalaT(ts,2,4);
for(int i = 0; i < ts.longitud(); i++) {
if(!((ts2.iesimo(i).salaT() == 2 && ts.iesimo(i).salaT() == 4) || (ts2.iesimo(i).salaT() != 2 && ts.iesimo(i).salaT() == ts2.iesimo(i).salaT()))) fallo = 1, cout << "Falla cambiarSalaT" << endl;
}
if(a.todosLosTicketsParaLaMismaSalaT(ts)) fallo = 1, cout << " Falla todosLosTicketsParaLaMismaSalaT" << endl;
if(a.todosLosTicketsParaLaMismaSalaT(ts2)) fallo = 1, cout << " Falla todosLosTicketsParaLaMismaSalaT" << endl;
if(!a.todosLosTicketsParaLaMismaSalaT(ts3)) fallo = 1, cout << " Falla todosLosTicketsParaLaMismaSalaT" << endl;
///Ticket ingresarASalaC(Sala s, const Ticket &t);
///
}
示例7: ordenarMedallero
Lista<pair<Pais, Lista<int> > > JJOO::medallero() const {
Lista<Pais> paises = this->paises();
Lista<pair<Pais, Lista<int> > > medallero;
// Recorro la lista de países.
int i = 0;
while(i < paises.longitud()) {
Pais pais = paises.iesimo(i);
int oros = 0;
int platas = 0;
int bronces = 0;
// Recorro los rankings de todas las competencias y acumulo las medallas del país actual.
int j = 0;
while(j < competencias().longitud()) {
Lista<Atleta> ranking = competencias().iesimo(j).ranking();
if(ranking.longitud() > 0 && ranking.iesimo(0).nacionalidad() == pais) oros++;
if(ranking.longitud() > 1 && ranking.iesimo(1).nacionalidad() == pais) platas++;
if(ranking.longitud() > 2 && ranking.iesimo(2).nacionalidad() == pais) bronces++;
j++;
}
// Si el país ganó alguna medalla, agrego al medallero la tupla país/medallas.
if(oros + platas + bronces > 0) {
Lista<int> medallas;
medallas.agregarAtras(oros);
medallas.agregarAtras(platas);
medallas.agregarAtras(bronces);
medallero.agregar(make_pair(pais, medallas));
}
i++;
}
// Devuelvo el medallero ordenado
return ordenarMedallero(medallero);
}
示例8: gananLosMasCapaces
bool Competencia::gananLosMasCapaces() const{
Deporte d = categoria().first;
Lista<Atleta> rank = ranking();
int i = 0;
bool res;
while (i<_ranking.longitud()){
if (rank.longitud()<=1){
res = true;
i = _ranking.longitud();
} else {
if(rank.iesimo(0).capacidad(d) >= rank.iesimo(1).capacidad(d)){
rank.sacar(rank.iesimo(0));
} else {
res = false;
i = _ranking.longitud();
}
}
}
return res;
}
示例9: uyOrdenadoAsiHayUnPatron
bool JJOO::uyOrdenadoAsiHayUnPatron() const {
// Guardo acá la secuencia de mejores países.
Lista<Pais> mejoresPaises;
// Recorro los juegos día por día.
int dia = 1;
while(dia <= cantDias()) {
// Guardo acá la cantidad de oros por país.
Lista<pair<Pais, int> > oros;
// Recorro el las competencias de este día.
int i = 0;
while(i < cronograma(dia).longitud()) {
Competencia actual = cronograma(dia).iesimo(i);
// Si la competencia actual está finalizada y alguien se llevó el oro,
// voy a buscar la nacionalidad del medallista y voy a sumarle un oro a
// ese país en mi lista de oros por país. En caso contrario, ignoro
// esta competencia.
if(actual.finalizada() && actual.ranking().longitud() > 0) {
Pais pais = actual.ranking().iesimo(0).nacionalidad();
// Busco el país del medallista en mi lista de oros por país.
bool encontrado = false;
int j = 0;
while(j < oros.longitud() && !encontrado) {
// Si encontré el país del medallista en mi lista de oros por país,
// aumento en uno la cantidad de oros de ese país.
if(oros.iesimo(j).first == pais) {
pair<Pais, int> nuevaTupla = make_pair(oros.iesimo(j).first, oros.iesimo(j).second + 1);
oros.eliminarPosicion(j);
oros.agregarAtras(nuevaTupla);
encontrado = true;
}
j++;
}
// Si el país del medallista no estaba en la lista de oros por país,
// agrego ese país a la lista, con cantidad de oros uno.
if(!encontrado) {
oros.agregarAtras(make_pair(pais, 1));
}
}
i++;
}
// Si hubieron oros este día, busco al mejor país y lo agrego a mejoresPaises.
if(oros.longitud() > 0) {
// Guardo acá el mejor país hasta el momento (tupla país/oros.)
pair<Pais, int> mejorPais;
// Recorro la lista de oros por país.
i = 0;
while(i < oros.longitud()) {
// Si el país i-ésimo es el primero de la lista de oros, o si tiene más oros que el mejor país
// hasta el momento, o si tiene igual cantidad de oros pero es lexicográficamente menor,
// entonces convierto al país i-ésimo en el mejor país hasta el momento.
if( i == 0 ||
oros.iesimo(i).second > mejorPais.second ||
(oros.iesimo(i).second == mejorPais.second && oros.iesimo(i).first < mejorPais.first)) {
mejorPais = oros.iesimo(i);
}
i++;
}
// Finalmente, agrego al mejor país del día a la lista de mejores países.
mejoresPaises.agregarAtras(mejorPais.first);
}
dia++;
}
bool hayPatron = true;
// Busco patrón si y sólo si hay tres o más mejores países.
if(mejoresPaises.longitud() >= 3) {
// Recorro la lista de mejores países hasta el anteúltimo elemento.
int i = 0;
while(i < mejoresPaises.longitud() - 1) {
Pais actual = mejoresPaises.iesimo(i);
Pais siguiente = mejoresPaises.iesimo(i + 1);
// Recorro todos los países a la derecha del país actual
int j = i + 1;
while(j < mejoresPaises.longitud() - 1) {
// Si el país j-ésimo es el mismo que el actual, verifico que el patrón
// se cumpla (el elemento siguiente siempre debe ser el mismo.)
if(mejoresPaises.iesimo(j) == actual) {
hayPatron = hayPatron && (mejoresPaises.iesimo(j + 1) == siguiente);
}
//.........这里部分代码省略.........
示例10: TestPelicula
void TestPelicula()
{
Actor actor[5] = {"Actor1","Actor2","Actor3","Actor4","Actor5"};
Lista<Genero> gen1,gen2,gen3;
gen1.agregarAtras((Genero)1);
gen1.agregarAtras((Genero)2);
gen2.agregarAtras((Genero)2);
gen2.agregarAtras((Genero)3);
gen3.agregarAtras((Genero)4);
Lista<Actor> act1,act2,act3;
act1.agregarAtras(actor[0]);
act1.agregarAtras(actor[2]);
act1.agregarAtras(actor[3]);
act2.agregarAtras(actor[1]);
act3.agregarAtras(actor[1]);
act3.agregarAtras(actor[2]);
act3.agregarAtras(actor[3]);
act3.agregarAtras(actor[4]);
Pelicula a("Peli1",gen1,act1,0);
Pelicula b("Peli2",gen2,act2,0);
Pelicula c("Peli3",gen3,act3,1);
if(a.nombreP()!="Peli1") fallo=1,cout << "Falla nombreP"<< endl;
if(b.nombreP()!="Peli2") fallo=1,cout << "Falla nombreP"<< endl;
if(c.nombreP()!="Peli3") fallo=1,cout << "Falla nombreP"<< endl;
if(!(a.generosP()==gen1)) fallo=1,cout<<"Falla generosP"<<endl;
if(!(b.generosP()==gen2)) fallo=1,cout<<"Falla generosP"<<endl;
if(!(c.generosP()==gen3)) fallo=1,cout<<"Falla generosP"<<endl;
if(a.es3DP()) fallo=1,cout<<"Falla es3DP" << endl;
if(b.es3DP()) fallo=1,cout<<"Falla es3DP" << endl;
if(!c.es3DP()) fallo=1,cout<<"Falla es3DP" << endl;
if(!(a.actoresP()==act1)) fallo=1,cout<<"Falla actoresP" << endl;
if(!(b.actoresP()==act2)) fallo=1,cout<<"Falla actoresP" << endl;
if(!(c.actoresP()==act3)) fallo=1,cout<<"Falla actoresP" << endl;
Lista<Pelicula> ps;
ps.agregarAtras(a);
ps.agregarAtras(b);
ps.agregarAtras(c);
Lista<std::pair<Genero,Lista<Pelicula> > > ans1,ans2,ans3;
Lista<std::pair<Genero,Lista<Pelicula> > > res = a.agruparPelisPorGeneroP(ps);
if(res.longitud()!=4) fallo=1,cout << "Falla agruparPelis" << endl;
Lista<Pelicula> l1,l2,l3,l12,l21;
l1.agregarAtras(a);
l2.agregarAtras(b);
l3.agregarAtras(c);
l12.agregarAtras(a);
l12.agregarAtras(b);
l21.agregarAtras(b);
l21.agregarAtras(a);
if(!(res.pertenece(make_pair((Genero) 1, l1)))) fallo=1,cout << "Falla agruparPelis" << endl;
if(!(res.pertenece(make_pair((Genero) 3, l2)))) fallo=1,cout << "Falla agruparPelis" << endl;
if(!(res.pertenece(make_pair((Genero) 4, l3)))) fallo=1,cout << "Falla agruparPelis" << endl;
if(!(res.pertenece(make_pair((Genero) 2, l12)) || res.pertenece(make_pair((Genero) 2, l21)))) fallo=1,cout << "Falla agruparPelis" << endl;
Lista<Nombre> noms;
noms.agregarAtras("P1");
noms.agregarAtras("P2");
noms.agregarAtras("P3");
if(a.generarSagaDePeliculasP(act1,gen2,noms).longitud()!=3) fallo=1,cout<<"Falla generarSagaDePeliculas" << endl;
pelis.push_back(a);
pelis.push_back(b);
pelis.push_back(c);
}
示例11: MenuCrearJJOO
JJOO MenuCrearJJOO()
{
int anio;
Lista<Atleta> atletas = Lista<Atleta>();
Lista< Lista<Competencia> > cronograma = Lista< Lista<Competencia> >();
cout << "Ingrese el año del Juego olimpico: " << endl;
cin >> anio;
bool otraFecha;
string eleccion;
cout << "¿Desea ingresar una fecha al JJOO? [s/n] ";
cin >> eleccion;
otraFecha = eleccion == "s";
while(otraFecha)
{
cout << endl;
cout<< "Ingresando nueva Fecha" << endl;
Lista<Competencia> nuevaLista = Lista<Competencia>();
bool otraCompetencia;
cout << "Desea ingresar una competencia? [s/n] ";
cin >> eleccion;
otraCompetencia = eleccion == "s";
while(otraCompetencia)
{
nuevaLista.agregarAtras(MenuCrearCompetencia());
cout << "Desea ingresar otra competencia? [s/n] ";
cin >> eleccion;
cout << endl;
otraCompetencia = eleccion == "s";
}
cronograma.agregarAtras(nuevaLista);
cout << "¿Desea ingresar otra fecha al JJOO? [s/n] ";
cin >> eleccion;
otraFecha = eleccion == "s";
}
cout << "¿Desea ingresar todos los participantes de las competencias ingresadas? :" << endl;
cin >> eleccion;
if (eleccion == "s")
{
for (int i = 0; i < cronograma.longitud(); i++)
{
for (int j = 0; j < cronograma.iesimo(i).longitud(); j++)
{
for(int k = 0; k < cronograma.iesimo(i).iesimo(j).participantes().longitud(); k++)
{
if (!atletas.pertenece(cronograma.iesimo(i).iesimo(j).participantes().iesimo(k)))
{
atletas.agregarAtras(cronograma.iesimo(i).iesimo(j).participantes().iesimo(k));
}
}
}
}
}
bool otroAtleta;
cout << "Desea ingresar otro atleta? [s/n] " << endl;
cin >> eleccion;
otroAtleta = eleccion == "s";
while(otroAtleta)
{
atletas.agregarAtras(MenuCrearAtleta());
cout << "Desea ingresar otro atleta? [s/n] ";
cin >> eleccion;
cout << endl;
otroAtleta = eleccion == "s";
}
return JJOO(anio, atletas, cronograma);
}
示例12: MenuJJOO
//.........这里部分代码省略.........
MenuJJOO();
break;
}
case 5:
{
int id;
string pais;
LimpiarPantalla();
MostrarAtletas(jjoo.atletas(), "Atletas del Juego Olimpico: ");
cout << "Indique el atleta y el pais al cual sera nacionalizado :" << endl;
cin >> id;
cin >> pais;
jjoo.liuSong(jjoo.atletas().iesimo(id), pais);
Pausar();
LimpiarPantalla();
MenuJJOO();
break;
}
case 6:
{
string pais;
cout << "Indique el pais del cual desea conocer sus atletas mas fracasados: ";
cin >> pais;
MostrarAtletas(jjoo.losMasFracasados(pais), "Los mas fracasados: ");
Pausar();
LimpiarPantalla();
MenuJJOO();
break;
}
case 7:
{
cout << "Medallero olimpico" << endl;
cout << "Pais" << " " << "Medallas" << endl;
for (int i = 0; i < jjoo.medallero().longitud(); i++)
{
cout << jjoo.medallero().iesimo(i).first << " " << jjoo.medallero().iesimo(i).second << endl;
}
Pausar();
LimpiarPantalla();
MenuJJOO();
break;
}
case 8:
{
MostrarAtletas(jjoo.dePaseo(), "Atletas de paseo :");
Pausar();
LimpiarPantalla();
MenuJJOO();
break;
}
case 9:
{
cout << "Sequia olimpica: " << endl;
for (int i = 0; i < jjoo.sequiaOlimpica().longitud(); i++)
{
cout << jjoo.sequiaOlimpica().iesimo(i) << " ";
}
Pausar();
LimpiarPantalla();
MenuJJOO();
break;
}
case 10:
{
cout << "¿Hay un patron? " << jjoo.uyOrdenadoAsiHayUnPatron() << endl;
Pausar();