Claus d'un map W21487


Statement
 

pdf   zip   main.cc

En C++, un map<K,V> emmagatzema parelles (clau, valor) amb claus úniques i ordenades segons l’ordre natural de les claus.

En aquest exercici has d’implementar una acció genèrica que, donat un map<K,V>, modifiqui el paràmetre list<K> perquè contingui totes les claus del map.

Interfície

C++
template <typename K, typename V>
void claus(const map<K,V>& m, list<K>& l);

L’acció ha de modificar la llista l perquè contingui totes les claus que apareixen al map. Com que el map manté les claus ordenades, la llista resultant també ha de quedar en ordre creixent.

Per fer les proves, la instància de map que es fa servir és map<string, int>.

Precondició

El paràmetre @l@ està buit.

Observació

Només cal enviar el procediment demanat; el programa principal serà ignorat.

Public test cases
  • Input/Output

    claus({{pera,3},{poma,7},{kiwi,2},{poma,9},{raim,1}}) → [kiwi,pera,poma,raim]
    claus({}) → []
    claus({{z,1},{a,2},{aa,3},{b,4},{ab,5},{a,9}}) → [a,aa,ab,b,z]
  • Input/Output

    claus({{m,0},{n,-1},{a,-10},{z,5},{m,7}}) → [a,m,n,z]
    claus({{k006,7},{k010,75},{k000,5},{k009,58},{k003,56},{k007,24},{k000,5},{k001,22},{k011,92},{k008,41},{k002,39},{k001,22},{k005,90},{k004,73},{k012,9},{k013,26},{k002,39}}) → [k000,k001,k002,k003,k004,k005,k006,k007,k008,k009,k010,k011,k012,k013]
    claus({{k022,79},{k004,73},{k008,41},{k023,96},{k020,45},{k006,7},{k004,73},{k000,5},{k014,43},{k021,62},{k005,90},{k015,60},{k010,75},{k007,24},{k018,11},{k003,56},{k001,22},{k000,5},{k013,26},{k012,9},{k002,39},{k016,77},{k003,56},{k009,58},{k001,22},{k019,28},{k011,92},{k002,39},{k017,94}}) → [k000,k001,k002,k003,k004,k005,k006,k007,k008,k009,k010,k011,k012,k013,k014,k015,k016,k017,k018,k019,k020,k021,k022,k023]
  • Information
    Author
    Bernardino Casas
    Language
    Catalan
    Official solutions
    C++
    User solutions
    C++