Joao brandao Posted May 20, 2012 at 12:01 PM Report #456935 Posted May 20, 2012 at 12:01 PM Boa tarde, estava aqui a estudar structs e surgiu me uma duvida/problema num dos exercicios. #include <cstdlib> #include <vector> #include <cmath> #include <iostream> #include <cstring> #include <algorithm> #include <assert.h> #define nummax 100 using namespace std; typedef struct numero numero; struct numero{ vector<int>numlist; }; numero numeros[nummax]; int pos; void addnum(int num) { numeros.push_back(num); // se retirar isto ja da direiro, o problema esta aqui neste codigo pos++; } int main() { int n; int num; cin>>n; for(int i = 0;i<n;i++) { cin>>num; addnum(num); } system("pause"); return 0; } o exercicio em si era basicamente ler n numeros e esses numeros(num) iria para a funçao que chamo e queria acrescentar no vector, o meu problema é que estou a fazer isto mal e não sei bem corrigir este erro :-S O problema esta quando adciono um numero na parte "numlist.push_back(num);", podem me dar uma ajudinha nisto?
xtrm0 Posted May 20, 2012 at 12:39 PM Report #456937 Posted May 20, 2012 at 12:39 PM Tu estas a tentar chamar o push_back nao na numlist, mas sim numa estrutura numero. Para ficar bem, terias de fazer: numeros[pos].numlist.push_back(num) <Signature goes here>
bsccara Posted May 20, 2012 at 12:41 PM Report #456938 Posted May 20, 2012 at 12:41 PM (edited) Para isso não precisas da estrutura 'numero'. Basta definir 'numeros' como um vector de ints (tal como defines 'numlist', mas sem estar dentro da estrutura). O que estás a criar é um array de vectores. Edited May 20, 2012 at 12:41 PM by bsccara
Joao brandao Posted May 20, 2012 at 08:47 PM Author Report #457023 Posted May 20, 2012 at 08:47 PM ja corrigi o erro 😉 mas ja agora, para imprimir nao deveria de ser assim: cout<<numero.numlist<<endl; ?
bsccara Posted May 20, 2012 at 08:53 PM Report #457027 Posted May 20, 2012 at 08:53 PM Não vejo qual a necessidade de usar um array de vectores quando basta um vector. Se foi isso que corrigiste (seguindo a minha indicação) deves imprimir com 'cout << numeros <<endl;'. Se continuas a usar um array de vectores terá de ser 'cout << numero.numlist[j] << endl;'.
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now