Ir para conteúdo
Fórum Script Brasil
  • 0

Problema Em Operações Com Vetores


t0rtura

Pergunta

Coloquei o #include <vector> lá em cima e depois criei o vetor:

vector<int> vetor(10); //Já tentei colocar [10] e também não funciona...

Depois tentei atribuir um valor a uma posição do vetor e o Visual C++ 6 não deixa:

vetor[1] = 1;

Ele dá o seguinte erro:

error C2679: binary '=' : no operator defined which takes a right-hand operand of type 'const int' (or there is no acceptable conversion)

porque será? Andei lendo alguns livros, e muitos falam sobre sobrecarga de operador, será que eu tenho de fazer algo nesse sentido? Como faz?

Abraços

t0rtura

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0

Antes eu achei que tivesse resolvido tirando a dimensão do vetor...

vector<int> vetor[100];

//troquei para

vector<int> vetor;

E aí não deu mais erro de compilação, mas deu um erro de execução na hora em que eu tento atribuir um valor a uma posição do vetor, baseando-se no fato de uma checkbox estar marcada ou não:

if(checkbox)

{

vetor(0) = 1;

}

Ele dá erro ali...

-------

Mas do teu jeito funcionou beleza, daí eu pergunto, e a classe <vector> ? Não serve pra nada?

[]s

t0rtura

Link para o comentário
Compartilhar em outros sites

  • 0

Olha só cara, eu também estou aprendendo a programar em c++ agora. O livro que estou acompanhando é o C Completo e Total do Herbert Schildt e é muito bom. A respeito dos vetores a declaração segue o seguinte padrão:

tipo nome_variável [tamanho do vetor]

Até onde eu sei, essa biblioteca 'vector' não existe. Para criar o vetor a 'stdio.h' já basta. A sugestão que o Rafael deu dá certo. Qualquer coisa, abri os exemplos que vem junto com o compilador e vê como foi feito.

Espero ter ajudado.

Link para o comentário
Compartilhar em outros sites

  • 0

vector<int> vetor;
vetor[0] = 1;
Não é assim que se define um elemento de um objeto vector. O correto é:
vector<int> vetor;

vetor.push_back(1);
Entretanto, o resgate de um elemento pode ser feito através dos []:
cout << vetor[0] << endl;

O por quê disso? Veja a resposta mais abaixo.

Mas do teu jeito funcionou beleza, daí eu pergunto, e a classe <vector> ? Não serve pra nada?

Sim, claro que serve. Reparou que você precisa definir um tamanho para um vetor normal (int vetor[100])? Com um vector você *não* precisa. Ele vai crescer a medida que for necessário. Por isso que você *não* pode definir um índice específico (vetor[0]) uma vez que ele pode *não* existir. Vale lembrar que um vector é um objeto portanto você terá que utilizar seus métodos e propriedades para manipulá-lo adequadamente.

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...