Dev - C++ - una funcion que recive un array o un std::vector como parametro

 
Vista:
Imágen de perfil de felipe
Val: 76
Ha aumentado su posición en 27 puestos en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

una funcion que recive un array o un std::vector como parametro

Publicado por felipe (32 intervenciones) el 22/11/2020 03:24:29
crea una copia del objeto que vivira dentro de la funcion o simplemente recivirá un puntero del objeto?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 297
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

una funcion que recive un array o un std::vector como parametro

Publicado por Martín (138 intervenciones) el 22/11/2020 03:29:51
Para el caso de un std::array y de un std::vector, si pasas el parámetro por valor, recibirá una copia. Si el parámetro es un puntero (array de estilo C), recibirá un puntero. Pon un ejemplo y vemos el caso.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 297
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

una funcion que recive un array o un std::vector como parametro

Publicado por Martín (138 intervenciones) el 22/11/2020 04:04:58
Un ejemplo con std::vector

Se pasa el vector por valor (una copia), de modo que la función no modifica al original

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <vector>
#include <iostream>
 
void fv(std::vector<int> v)
{
    v[0] = 100;
    v[1] = 101;
    v[2] = 102;
    for (int i : v) {
        std::cout << i << ' ';
    }
    std::cout << '\n';
}
 
int main()
{
 
    std::vector<int> v{ 1, 2, 3 };
    fv(v);
 
    for (int i : v) {
        std::cout << i << ' ';
    }
    std::cout << '\n';
 
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar