1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

vector como argumento de função [c++]

Discussão em 'Programação' iniciada por Ronnie_03, 16 de Março de 2009. (Respostas: 4; Visualizações: 2807)

  1. Ronnie_03

    Ronnie_03 Power Member

    Boas,

    Eu estou a fazer um projecto e para organizar os dados uso um vector de strings:

    vector<string> tabuleiro(max_tentativas);

    O que eu gostava de saber é se posso passar o vector todo como agumento de uma função, ou se só posso passar 1 elemento de cada vez.

    Caso seja possível devo passá-lo por referência, para evitar gastar tempo a copiar o vector, certo?

    Cumps
     
  2. Granadafeup

    Granadafeup Power Member

    Sim podes passar o objecto todo num argumento e sim, deve passar por referencia.

    Código:
    void functionName(vector<string> &temp)
    
    Se só pretendes consultar os dados então mete um const antes do vector<string>.

    Os únicos objectos aceitáveis (por aceitaveis leia-se boa pratica) de passar por copia são os mais básicos (int , double etc) e classes e structs pequenas.
     
  3. Ronnie_03

    Ronnie_03 Power Member

    Tenho outra duvida relacionada com vectores. Queria saber como é que declaro uma função para ela me devolver um vector de strings. O que eu estava a pensar fazer era passar o vector por referência, e depois a função alterar esse vector e devolver uma referência para esse vector.

    Já agora outra dúvida, que é offtopic mas achei que não era necessário criar outro tópico só para isso. Eu tenho algumas funções que recebem strings como argumentos (argumentos passados por referência), mas se eu tentar passar como argumento uma string constante dá-me erro. Como é que devo fazer para resolver esse erro?

    Cumps
     
  4. OubeLa

    OubeLa Power Member

    Função que devolve um vector de strings:

    vector<string> functionName(/*argumentos*/)

    Função que recebe e altera um vector de strings passado por referência:

    void functionName(vector<string> &myvector /*, outros argumentos*/ )


    Em relação à tua outra dúvida, podes dar um exemplo?
     
    Última edição: 18 de Março de 2009
  5. Ronnie_03

    Ronnie_03 Power Member

    Obrigado pela ajuda!!
    A outra duvida já consegui resolver bastava declarar os argumentos das funções com const.

    Cumps
     

Partilhar esta Página