t0rtura Postado Maio 27, 2005 Denunciar Share Postado Maio 27, 2005 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çost0rtura Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 rafaelbortoletto Postado Maio 27, 2005 Denunciar Share Postado Maio 27, 2005 Se você colocar simplesmente assim (sem usar o include e o vector): int vetor[10]; e, depois: vetor[1] = 1; não funciona? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 t0rtura Postado Maio 27, 2005 Autor Denunciar Share Postado Maio 27, 2005 Antes eu achei que tivesse resolvido tirando a dimensão do vetor...vector<int> vetor[100]; //troquei paravector<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?[]st0rtura Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ramon Postado Maio 28, 2005 Denunciar Share Postado Maio 28, 2005 troque esta parte do codigovetor(0) = 1;por vetor[0] = 1; Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Thiago.Ribeiro Postado Maio 31, 2005 Denunciar Share Postado Maio 31, 2005 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. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Graymalkin Postado Maio 31, 2005 Denunciar Share Postado Maio 31, 2005 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 Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
t0rtura
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
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.