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

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
 
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.
 
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
 
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:
Back
Topo