Ir ao conteúdo
  • Cadastre-se

Criação de várias matrizes em c++


Murilo Marchiori

Posts recomendados

Olá, boa tarde.

Eu vou explicar o meu problema primeiro: eu tenho que gerar matrizes de tamanhos diferentes ao decorrer do meu programa... por exemplo: tres matrizes, uma 3x2, outra 5x4 e outra 9x4. Acontece que eu não posso simplesmente declarar as benditas, tipo int matriz[3][2], porque elas podem mudar de tamanho, não é fixo, o tamanho delas vai depender de uma entrada, mas o problema não é esse... eu sei criar matrizes dinamicas atraves de ponteiros, mas não to sabendo como criar varias delas... meus dois problemas basicamente sao:

1) como conseguir um numero indeterminado de matrizes (ora eu vou precisar criar duas, ora tres, ora quatro matrizes, etc...);

2) como saber se uma matriz de determinado tamanho ja foi criada, pra nao precisar criar outra, por exemplo, se eu crio uma matriz 2x2, e em outro momento preciso de outra matriz 2x2, não preciso criar outra, basta zerar a primeira...

alguma ideia de como fazer isso? nem precisa de codigo nao, so nao to conseguindo pegar a logica... valeu ^^

Link para o comentário
Compartilhar em outros sites

Se é em c++, é bem simples de resolver isso. Só criar uma classe matriz.

Pra criar as matrizes de tamanho diferente, você cria um ponteiro, e passa pra ele uma "new Matriz(x, y);" quando precisar de uma matriz nova.

Pra resolver o segundo problema, depende do que você quer realmente. Pode ser que a solução mais simples seja simplesmente deletar a matriz que você já tem e passar uma nova matriz pro ponteiro. Ou se você realmente precisar ter várias matrizes sendo acessadas ao mesmo tempo, é só ir jogando os endereços numa lista encadeada ou algo assim.

Link para o comentário
Compartilhar em outros sites

Se é em c++, é bem simples de resolver isso. Só criar uma classe matriz.

Pra criar as matrizes de tamanho diferente, você cria um ponteiro, e passa pra ele uma "new Matriz(x, y);" quando precisar de uma matriz nova.

Pra resolver o segundo problema, depende do que você quer realmente. Pode ser que a solução mais simples seja simplesmente deletar a matriz que você já tem e passar uma nova matriz pro ponteiro. Ou se você realmente precisar ter várias matrizes sendo acessadas ao mesmo tempo, é só ir jogando os endereços numa lista encadeada ou algo assim.

mas se eu fizer isso, ele nao vai sobrescrever a matriz a cada vez q eu criar de novo?

por exemplo, eu crio *ponteiro = nem Matriz(2,4) << Foi assim mesmo que você falou, né?

agora, quando eu precisar de outra, eu faço *ponteiro = nem Matriz (3,2) ?

aí essa matriz nova nao vai sobrescrever a matriz velha?

Link para o comentário
Compartilhar em outros sites

Foi por isso que eu disse que, caso você precise usar várias matrizes ao mesmo tempo no programa, é só ir jogando o endereço delas em alguma estrutura, como uma lista encadeada (ou até mesmo um vetor simples, caso saiba o máximo de matrizes que vai usar).

Aí o ponteiro fica livra pra acessar/receber novas matrizes e o endereço das que já foram criadas fica guardado na lista pra ser acessado/removido quando quiser.

Link para o comentário
Compartilhar em outros sites

Foi por isso que eu disse que, caso você precise usar várias matrizes ao mesmo tempo no programa, é só ir jogando o endereço delas em alguma estrutura, como uma lista encadeada (ou até mesmo um vetor simples, caso saiba o máximo de matrizes que vai usar).

Aí o ponteiro fica livra pra acessar/receber novas matrizes e o endereço das que já foram criadas fica guardado na lista pra ser acessado/removido quando quiser.

Então, eu nao sei a quantidade maxima, então no caso teria q usar a lista encadeada, mas eu nao sei fazer isso de guardar os endereços nessa lista e depois recupara-los... você sabe de algum lugar onde eu possa buscar algum exemplo?

Link para o comentário
Compartilhar em outros sites

  • 2 meses depois...

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...