Test Foro de elhacker.net SMF 2.1

Programación => Programación C/C++ => Mensaje iniciado por: indict en 12 Enero 2013, 18:03 PM

Título: ayuda con estructuras c++
Publicado por: indict en 12 Enero 2013, 18:03 PM
Querría hacer una función que dada un número n de países me ordene por países,  ejemplo:

españa 120
francia 70
españa 50
perú  100
francia 80


me ordene por españa 120, españa 50, francia 70, francia 80, perú 100

Gracias

#inlcude<iostream>
#include<vector>
#include<algorithm>

using namespace std;

struct pais{
       string nom;
       int q;};
       
int main(){
int n;
cin>>n;
vector<pais>v(n);
int i=0;
while(i<n){
           cin>>v[i].nom;
           cin>>v[i].q;
           i=i+1;}     
       
sort(v.begin(),v.end(),ordena_nom);







vector<pais>total();

total.push_back(v[0]);

int main(){

int i=1;

while(i<v.size()){
                 
                  if (v[i].nom==v[i-1].nom){
                  totals[total.size()-1].quantitat=total[total.size()-1].quantitat + v[i].quantitat;}
                  else {p.nom=v[i].nom;
                  p.q=v[i].q;
                  total.push_back(p);}
Título: Re: ayuda con estructuras c++
Publicado por: dooque en 16 Enero 2013, 03:07 AM
Hola!

No leí el código pero no veo tu pregunta/problema/duda al respecto! Por lo que no se como ayudarte.

Saludos.
Título: Re: ayuda con estructuras c++
Publicado por: zonahurbana en 16 Enero 2013, 03:33 AM
No lo he probado, pero esto debería andar bien:
Código (cpp) [Seleccionar]
pais temp;
for(int i=0; i<v.size(); ++i)
for(int j=i+1; j<v.size(); ++i)
if( (v[i].nom > v[j].nom) || (v[i].nom == v[j].nom && v[i].q < v[j].q) )
temp = v[i];
v[i] = v[j];
v[j] = temp;
Título: Re: ayuda con estructuras c++
Publicado por: BlackZeroX en 16 Enero 2013, 03:48 AM
@zonahurbana
Si te fijas bien el usa ya el proceso sort()... PERO NO DICE ni aclara su problema.

En el sort() usas el proceso ordena_nom() pero no dejas su código... ¿Si te COMPILA este código? yo creo que no.

Dulces Lunas!¡.