Tieni aggiornato il catalogo

Buongiorno, esattamente cosa bisogna sottoporre con il problema “tieni aggiornato il catalogo”???

Se non l’hai già letto, ti consiglio di guardarti la guida su come si usano i grader.

In ogni caso, guardando nei dettagli di una sottoposizione, puoi vedere l’esito della compilazione con gli eventuali errori.

Mi da compilazione fallita e non capisco gli errori

#include <iostream>
#include <vector>
using namespace std;

vector <int> V;

void aggiungi(long long int id) {
		V.push_back(id);
}

void togli(long long int id) {
	int x; 
	
	for (int i=0;i<V.size();i++){
		if (V[i]==id){
			V.erase(V.begin()+i);
			return;			
		}
	}

    
}

	vector <int>::iterator it;
	for ( it = V.begin() ; it != V.end(); ++it){  
		if (*it==id){						
			b=b+1;
		}
	}
    return b;
}


int main(){
	long long int id;
	int n;
	int b;
	char x;
	
	freopen("input.txt","r",stdin);
	freopen("output.txt","w",stdout);
	
	cin>>n;
	b=0;
	for (int i=0;i<n;i++){
		cin>>x>>id;

		if (x =='a'){
			aggiungi(id);
		}
		if (x=='t'){
			togli(id);
		}
		if (x=='c'){
			cout << conta(id) << '\n';
		}
	}
	return 0;
}

Manca il tipo di dato usato nel vettore V quando lo dichiari → vector <int> V?

Nono quello c’è solo che nel messaggio non me lo copiava

Gli errori di GCC sono a volte un po’ complicati da comprendere ma una volta che ci fai l’abitudine sono abbastanza semplici da capire:

  • se l’errore è simile a:

    catalogo.cpp:2:9: error: ‘V’ was not declared in this scope
        2 |         V.push_back(id);
    

    allora vuol dire che non hai definito la variabile V e devi quindi aggiungere la definizione: vector<int> V.

  • se l’errore è simile a:

    catalogo.cpp:1:1: error: ‘vector’ does not name a type
        1 | vector <int> V;
    

    allora vuol dire che il compilatore non trova nessun tipo di variabile che si chiama vector, puoi risolvere includendo l’header con la definizione di vector e specificando il namespace giusto:

    #include <vector>
    using namespace std;
    
  • se l’errore è simile a:

    /usr/bin/ld: /tmp/ccCqpS9m.o: in function `main':
    catalogo.cpp:(.text.startup+0x0): multiple definition of `main'; /tmp/ccHKG1Ak.o:grader.cpp: (.text.startup+0x0): first defined here
    

    allora vuol dire che non hai letto la guida su come si usano i grader.

Inoltre all’intero della guida su come si usano i grader puoi anche trovare le istruzioni su come si compilano i grader in locale, in modo da assicurarti che ciò che mandi compilerà con successo.

1 Mi Piace