Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    98

    [C/C++] Problema con STL e stringhe

    Ciao ragazzi..oggi mi sono messo a studiare un po' STL. Mi sono visto come funzionano vector, list e deque. Però ho avuto dei problmi nel lavorare con le stringhe: non ho capito come posso fare a stamparle...Qualche suggerimento?

  2. #2
    Utente di HTML.it L'avatar di Stoicenko
    Registrato dal
    Feb 2004
    Messaggi
    2,254
    Non funziona il "cout"??

    posta il codice e l'errore altrimenti brancoliamo nel buio..

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    98
    In realta coi vector mi funziona, solo che mi da tutti questi errori nonostante esce quello che io ho inserito nel vector.
    codice:
    #include <vector>
    #include <iostream>
    
    using namespace std;
    
    int main()
    {
    
    
    	vector<string> a;
    	a.push_back("Prova");
    	a.push_back("vettore");
    
    	vector<string>::iterator i;
    	for(i=a.begin(); i<a.end(); ++i)
    	{
    		cout << *i;
    	}
    
    	return 0;
    }
    ERRORI:
    C:\Documents and Settings\riccardoizzo\Documenti\Esempi C++\STL2\2\main.cpp(28) : warning C4786: 'std::reverse_iterator<std::basic_string<char,std: :char_traits<char>,std::allocator<char> > const *,std::basic_string<char,std::char_traits<char>,st d::a
    llocator<char> >,std::basic_string<char,std::char_traits<char>,st d::allocator<char> > const &,std::basic_string<char,std::char_traits<char>,st d::allocator<char> > const *,int>' : identifier was truncated to '255' characters in the debug information
    C:\Documents and Settings\riccardoizzo\Documenti\Esempi C++\STL2\2\main.cpp(28) : warning C4786: 'std::reverse_iterator<std::basic_string<char,std: :char_traits<char>,std::allocator<char> > *,std::basic_string<char,std::char_traits<char>,st d::allocat
    or<char> >,std::basic_string<char,std::char_traits<char>,st d::allocator<char> > &,std::basic_string<char,std::char_traits<char>,st d::allocator<char> > *,int>' : identifier was truncated to '255' characters in the debug information
    c:\programmi\microsoft visual studio\vc98\include\vector(39) : warning C4786: 'std::vector<std::basic_string<char,std::char_trai ts<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_ traits<char>,std::allocator<char> > > >::
    vector<std::basic_string<char,std::char_traits<cha r>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_ traits<char>,std::allocator<char> > > >' : identifier was truncated to '255' characters in the debug information
    c:\programmi\microsoft visual studio\vc98\include\vector(60) : warning C4786: 'std::vector<std::basic_string<char,std::char_trai ts<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_ traits<char>,std::allocator<char> > > >::
    ~vector<std::basic_string<char,std::char_traits<ch ar>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_ traits<char>,std::allocator<char> > > >' : identifier was truncated to '255' characters in the debug information
    Linking...

    2.exe - 0 error(s), 4 warning(s)

  4. #4
    Utente di HTML.it L'avatar di Stoicenko
    Registrato dal
    Feb 2004
    Messaggi
    2,254
    Strano.. hai guardato se utilizzando invece che un iterator usi un indice int da sempre problemi?

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    98
    con un int non ho problemi...

  6. #6
    Codice PHP:
    #include <vector>
    #include <iostream>
    #include <string> // <<<

    using namespace std;

    int main()
    {


        
    vector<stringa;
        
    a.push_back("Prova");
        
    a.push_back("vettore");

        
    vector<string>::iterator i;
        for(
    i=a.begin(); != a.end(); ++i// <<<
        
    {
            
    cout << *<< endl;
        }

        return 
    0;


  7. #7
    Utente di HTML.it L'avatar di Stoicenko
    Registrato dal
    Feb 2004
    Messaggi
    2,254
    Allora il vector probabilmente ha pure un reverse iterator che invece che andare avanti va in dietro (che genio)

    Quindi il problema è del ++i o del cout<<*i (più probabile visti gli errori)

    se infatti provi a stampare a[1] o a[2] funziona..

    Soluzione? Sinceramente non ho idea del perchè *i (palesamente di tipo string) non venga stampato.. Proporrei una prova con i++ al posto di ++i e se il problema persiste di riguardarti la classe iterator..

  8. #8
    Allora il vector probabilmente ha pure un reverse iterator che invece che andare avanti va in dietro (che genio) Quindi il problema è del ++i o del cout<<*i (più probabile visti gli errori) se infatti provi a stampare a[1] o a[2] funziona.. Soluzione? Sinceramente non ho idea del perchè *i (palesamente di tipo string) non venga stampato.. Proporrei una prova con i++ al posto di ++i e se il problema persiste di riguardarti la classe iterator..
    La soluzione è BANALE, basta guardare il codice postato poco fa.

  9. #9
    Utente di HTML.it L'avatar di Stoicenko
    Registrato dal
    Feb 2004
    Messaggi
    2,254
    Ha ha ha giusto.. l' end() ritorna l'iteratore nullo.. non esiste il "<end()".. quindi lui andava avanti e indietro per nulla..

  10. #10
    Ha ha ha giusto.. l' end() ritorna l'iteratore nullo.. non esiste il "<end()".. quindi lui andava avanti e indietro per nulla..
    No, quello è solo un dettaglio trascurabile. Il vero problema è la mancata inclusione di <string>!!!

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 © 2024 vBulletin Solutions, Inc. All rights reserved.