Visualizzazione dei risultati da 1 a 10 su 13

Hybrid View

  1. #1
    Si hai ragione scusami ho provato a scrivere questo :

    codice:
    map<string,int> aparicionesString(vector <string> & v){
    
        map<string,int> n;
        std::map<string,int>::iterator it;
    
        for (int j = 0; j<v.size(); j++){
    
            map<string,int> temp;
            temp = n.find(v[j]);
            int count=0;
            if (temp.empty()){
                count++;
                pair<string, int> elem1 = {v[j],count};
                n.insert(elem1);
            }
            else
    ma è incompleto e sbagliato... per di più non ho ancora ben capito la differenza tra le funzioni find e count per la ricerca in una mappa...

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    find cerca un elemento
    count restituisce il numero di elementi cercati

    La differenza è semplice. Il primo metodo restituisce un elemento cercato se viene trovato. Il secondo restituisce il numero di elementi cercati.

    Ma perché cercare in una mappa? Ti richiede di cercare e contare nel vector ...
    Ultima modifica di oregon; 22-11-2015 a 13:02
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    perché la mia idea era :

    ricercare la stringa del vettore nella mappa:
    ----> se non c'è immettere la coppia di valori e inizializzare un contatore a 1;
    ----> se c'è incrementare solo il contatore;

    tutto questo forse con una mappa/vettore ausiliario temp?? ho azzardato questa ipotesi ma non ne sono sicuro

    potrebbe farmi comodo quindi count? find restituisce un booleano? ricerca solo gli elementi associati ad una chiave o posso cercare anche solo una chiave della mappa?
    Ultima modifica di aleRomatre; 22-11-2015 a 13:22

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Quote Originariamente inviata da aleRomatre Visualizza il messaggio
    perché la mia idea era :

    ricercare la stringa del vettore nella mappa:
    ----> se non c'è immettere la coppia di valori e inizializzare un contatore a 1;
    ----> se c'è incrementare solo il contatore;
    Corretto ... ma non serve nulla di temporaneo ...

    find restituisce il puntatore all'elemento della mappa che cerchi ...

    Ti basta poco nel ciclo for ...

    codice:
    		it = n.find(v[j]);
    		if (it != n.end()) 
    			it->second++;
    		else
    			n.insert(pair<string, int>(v[j], 1));
    No MP tecnici (non rispondo nemmeno!), usa il forum.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.