Jump to content

Recommended Posts

Posted

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?

Posted

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>

Posted (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 by bsccara
Posted

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;'.

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.