11. C++: Vectores





Funciones para trabajar con vectores:
Ordenación con
std::sort: Ordena los elementos en el vector de menor a mayor.// vector = sort(desde, hasta) std::sort(vector.begin(), vector.end());
#include <iostream> #include <vector> #include <algorithm> // Para std::sort int main() { // Crear un vector de enteros std::vector<int> numbers = {5, 2, 9, 1, 7, 6}; // Ordenar los elementos std::sort(numbers.begin(), numbers.end()); std::cout << "Elementos ordenados: "; for (int num : numbers) { std::cout << num << " "; } std::cout << std::endl; return 0; }Búsqueda con
std::find: Busca un elemento en el vector.// posicion_del_elemento_encontrado = find(desde, hasta, valor_a_buscar) auto it = std::find(numbers.begin(), numbers.end(), valor_a_buscar);
#include <iostream> #include <vector> #include <algorithm> // Para std::find int main() { // Crear un vector de enteros std::vector<int> numbers = {5, 2, 9, 1, 7, 6}; // Buscar un elemento int valor_a_buscar = 7; // posicion_del_elemento_encontrado = find(desde, hasta, valor_a_buscar) auto it = std::find(numbers.begin(), numbers.end(), valor_a_buscar); if (it != numbers.end()) { std::cout << "El valor " << valor_a_buscar << " fue encontrado en el vector." << std::endl; } else { std::cout << "El valor " << valor_a_buscar << " no fue encontrado en el vector." << std::endl; } return 0; }Otros muy utiles son: std::find_if(), std::distance(), find_if_not https://unstop.com/blog/find-in-vector-cpp


Inversión con
std::reverse: Invierte el orden de los elementos en el vector.// reverse(desde, hasta) std::reverse(numbers.begin(), numbers.end());
#include <iostream> #include <vector> #include <algorithm> // Para std::sort int main() { // Crear un vector de enteros std::vector<int> numbers = {5, 2, 9, 1, 7, 6}; // 3. Invertir el orden de los elementos std::reverse(numbers.begin(), numbers.end()); std::cout << "Elementos en orden inverso: "; for (int num : numbers) { std::cout << num << " "; } std::cout << std::endl; return 0; }Acumulación con
std::accumulateostd::reduce: Suma los elementos en un rango.// totalSuma = accumulate(desde, hasta, init) int sum = std::accumulate(numbers.begin(), numbers.end(), 0);
Ejemplo:
#include <iostream> #include <vector> #include <numeric> // Para std::accumulate int main() { // Crear un vector de enteros std::vector<int> numbers = {5, 2, 9, 1, 7, 6}; // 4. Sumar todos los elementos int sum = std::accumulate(numbers.begin(), numbers.end(), 0); std::cout << "Suma de todos los elementos: " << sum << std::endl; return 0; }Transformación con
std::transform: Aplica una función a un rango de elementos y almacena el resultado en otro contenedor.// transform(desde, hasta, std::transform(numbers.begin(), numbers.end(), numbers.begin(), [](int x) { return x * 2; });image
#include <iostream> #include <vector> #include <algorithm> // Para std::transform int main() { // Crear un vector de enteros std::vector<int> numbers = {5, 2, 9, 1, 7, 6}; // 5. Transformar los elementos (por ejemplo, duplicar cada valor) std::transform(numbers.begin(), numbers.end(), numbers.begin(), [](int x) { return x * 2; }); std::cout << "Elementos después de duplicar: "; for (int num : numbers) { std::cout << num << " "; } std::cout << std::endl; return 0; }