Unidad 2 - Semana 4 - Ejercicios
Unidad 2 - Semana 4 - Ejercicios
Unidad 2 - Semana 4 - Ejercicios
Rubén Rivas
Function Templates
Ejercicio # 2
Escribir una función template sumar_rango que permita la suma de los valores de
2 contenedores, por ejemplo.
vector<int> v1 = {1, 3, 4};
vector<int> v2 = {4, 5, 6};
auto v3 = sum_rango(v1, v2}; // {5, 8, 10}
si uno de los contenedores es de menor tamaño, el contenedor de menor tamaño
se sumará repetidamente con otro contenedor hasta completar el tamaño del
mayor. ejemplo
list<int> v1 = {1, 2, 3, 4, 5};
list<int> v2 = {10, 20};
auto v3 = sum_rango(v1, v2}; // {11, 22, 13, 24, 15}
Ejercicio # 4
Ejemplo # 1:
vector<int> v1 = {1, 3, 4, 1, 3, 2, 3, 4, 6, 5};
auto v3 = delete_items(v1, 1); // {3, 4, 3, 2, 3, 4, 6, 5}
Ejemplo # 2:
list<int> v1 = {1, 3, 4, 1, 3, 2, 3, 4, 6, 5};
auto v3 = delete_items(v1, {1, 4}); // {3, 3, 2, 3, 6, 5}
Ejercicio # 5
Ejemplo # 1:
vector<int> v1 = {1, 3, 4, 1, 3, 2, 3, 4, 6, 5};
auto v3 =delete_duplicated(v1); // {1, 3, 4, 2, 6, 5}
Ejemplo # 2:
list<int> v1 = {1, 1, 1, 1, 3, 2, 2, 2, 2, 5};
auto v3 = delete_duplicated(v1); // {1, 3, 2, 5}
Ejercicio # 8
Extender la función unpack del ejercicio #7 para la estructura std:tuple (investigar el funcionamiento de
tuple):
De otro lado lenguajes como python brindan un mecanismo conocido como unpack que permite asignar
valores de un contenedor a variable con nombres significativos.
En python existe una función denominada zip que permite recibir un número variado de contenedores del mismo tipo y
agrupar los valores de una misma fila generando tuplas por cada fila con los valores de cada contenedor.
Generar un function template similar, pero en vez de tuplas genere un vector con los valores correspondientes de cada fila
Ejemplo:
list<int> v1 = { 11, 12, 13 };
list<int> v2 = { 21, 22, 23 };
list<int> v3 = { 31, 32, 33 };
auto result = zip(v1, v2, v3);
for (const auto& row : result) {
for (const auto& value : row)
cout << value << " ";
cout << endl;
}