Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it L'avatar di lsdyla
    Registrato dal
    Jun 2012
    Messaggi
    10

    [c++] map e list con eclipse

    salve a tutti. ho da poco installato eclipse ed aperto un progetto che in precedenza avevo già compilato ed eseguito correttamente sul dev-c++.

    il problema è che adesso non mi riconosce le mappe nè le liste!!!

    vicino alla dichiarazione della lista
    codice:
     list<classemia>	 elemento;
    compare la scritta "symbol 'list' could not be resolved"
    pur avendo specificato
    codice:
     #include<list>
    nello stesso file!!

    la cosa ancora più strana è che invece i vettori non restituiscono alcun problema!
    quale può essere il problema?

  2. #2
    Se non scrivi using namespace std devi specificare esplicitamente std::list
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    Utente di HTML.it L'avatar di lsdyla
    Registrato dal
    Jun 2012
    Messaggi
    10
    l'ho inserito!!!
    ti posto la parte iniziale del codice, che è quella che dà problemi

    codice:
    #include <vector>
    #include <list>
    #include <set>
    #include <map>
    #include <cstdio>
    #include <fstream>
    
    using namespace std;
    
    class ClasseMia
    {
    public:
    	int i;
    	map<pair<int,int>,double> 	elemento;
    analogo discorso per la list, presente in una classe dichiarata subito dopo:

    codice:
    class ClasseMia2
    {
    public:
    	int num;
    	list<ClasseMia> 	elem;
    Symbol 'map' could not be resolved

    Symbol 'list' could not be resolved

    invece per vector non dà problemi:

    codice:
    class ClasseMia3
    {
    public:
    	vector<ClasseMia2>	nodo;
    non riesco proprio a capire

  4. #4
    Utente di HTML.it L'avatar di lsdyla
    Registrato dal
    Jun 2012
    Messaggi
    10
    lo stesso programma su dev-c++ viene compilato ed eseguito correttamente, mentre su Eclipse (appena installato) no! è questo che non capisco!!!
    ho pensato fosse un problema di librerie, ma vengono riconosciute ed incluse (le vedo nella finestra Outline) tutte e tre (map, list e vector).

  5. #5
    Utente bannato
    Registrato dal
    Apr 2012
    Messaggi
    510
    Tu hai definito una classe pair<T,E> che non ha una relazione di ordinamento totale sugli elementi.
    La classe map ha bisogno di ordinare gli elementi per distinguerli, visto che gli indici sono associativi.
    Quello che ti serve è definire l' operatore < nella classe pair:

    codice:
    bool pair<int,int> operator< (pair<int,int> p1, pair<int,int> p2)
    {...}
    Non ti riconosce nemmeno list<ClasseMia> perché ClasseMia non è risolvibile, appunto perché contiene una mappa con indici non ordinabili.

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.