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);}
Hola!
No leí el código pero no veo tu pregunta/problema/duda al respecto! Por lo que no se como ayudarte.
Saludos.
No lo he probado, pero esto debería andar bien:
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;
@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!¡.