Requisitos:
El tipo de variable vector permite almacenar varios valores bajo una sola variable y realizar operaciones complejas con esta. Todos los valores dentro del vector han de ser del mismo tipo (todas int o todas string o todas char o todas bool, ...).
Lo primero que se ha de hacer para poder utilizar vectores es añadir al principio del código esta línea:
#include <vector>
Una variable de tipo vector se declara así:
vector < tipo_de_los_valores > nombre_de_la_variable( tamaño );
Por ejemplo:
vector<int> puntos_equipos(15); // Esto declara un vector de 15 valores
Podemos dar un valor inicial a todas las posiciones del vector. Por ejemplo, inicialmente queremos que todos los equipos tengan 0 puntos porque la competición todavía no ha comenzado:
vector<int> puntos_equipos(15, 0);
Los valores se pueden leer y asignar igual que con los arrays: puntos_equipos[0], puntos_equipos[1], ...
Los dos parámetros pueden ser variables:
int numEquipos = 15;
int puntosIniciales = 0;
vector<int> puntos_equipos(numEquipos, puntosIniciales);
Podemos mirar cuantos valores tiene este vector con su subsintrucción .size():
cout << puntos_equipos.size();
Esto mostrará por pantalla “15”. No importa si todas las 15 posiciones del vector tienen valor o no, te dirá el tamaño total del vector.
Podemos añadir un elemento nuevo a un vector con su subinstrucción .push_back(valor). Por ejemplo si ahora hacemos puntos_equipos.push_back(10) el vector pasaría a ser de 16 posiciones. push_back() siempre añade el valor al final del vector (al final de su tamaño, aunque tenga posiciones sin valor).
Por lo tanto incluso podríamos crear un vector sin tamaño (tamaño 0) e ir añadiendo con push_back() uno a uno los elementos que leemos del cin:
vector<int> puntos_equipos;
int numEquipos;
cin >> numEquipos;
while(numEquipos > 0) {
int puntos;
cin >> puntos;
punts_equipos.push_back(puntos);
numEquipos = numEquipos - 1;
}
Vector ofrece muchas más subinstruccions como pop_back(), insert(), erase(), sort(), que pueden ser útiles en muchos momentos.
Podemos ordenar un vector usando la función sort(). Para poder usar esta función se debe añadir la línea #include <algorithm> al principio del programa. La sintaxis de la función sort() es sort(variable.begin(), variable.end()) sustituyendo variable por el nombre de la variable:
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
vector<int> numeros = { 1, 8, 3, 7, 0, 9 };
for (int i = 0; i < numeros.size(); i++) {
cout << numeros[i] << " ";
} // Muestra por pantalla 1 8 3 7 0 9
cout << endl;
sort(numeros.begin(), numeros.end());
for (int i = 0; i < numeros.size(); i++) {
cout << numeros[i] << " ";
}
} // Muestra por pantalla 0 1 3 7 8 9
Cuando quieres enviar como parámetro un vector a una función, a la función receptora se le debe poner un "&" antes del nombre del parámetro:
#include <iostream>
#include <vector>
using namespace std;
void muestraPosicion(vector<int> ¶metro, int index) {
cout << parametro[index];
}
int main() {
vector<int> lista;
lista = { 6, 8, 7, 3, 2, 8, 9, 3 };
int posicion;
cin >> posicion;
muestraPosicion(lista, posicion);
}
Esto es porque normalmente cuando pasamos un parámetro lo que hace C++ realmente es hacer una copia del valor y pasar esta copia a la función. Pero con los vectores casi siempre lo que queremos es que la función receptora modifique el vector y nos lo devuelva con las modificaciones, por lo tanto no queremos que reciba una copia sino que queremos que reciba el original y trabaje directamente sobre nuestra variable.
Esto, evidentemente, también se puede hacer con cualquier otro tipo de variable como int, string, char, etc:
#include <iostream>
using namespace std;
void dobla(int &n) {
n = n * 2;
}
int main() {
int num;
cin >> num;
dobla(num);
cout << num;
}
Comentarios
Multiplicacion de vectores en c
Hola me podria ayudar con este ejercicio:
Se desea recorrer el siguiente vector vector[] = {2,1,4,3,6,5,8,7,10,9}; y multiplicar
cada número del vector con el número que el usuario ingrese,
Hola, Joel.Puedes ver…
Hola, Joel.
Puedes ver ejemplos de recorrer un vector (o una array, en este aspecto son iguales) en los siguientes manuales:
https://aprende.olimpiada-informatica.org/cpp-array
https://aprende.olimpiada-informatica.org/cpp-bucles-for
respuesta
#include <iostream>
using namespace std;
int main()
{
int limite,numero;
int vector[]={2,1,4,3,6,5,8,7,10,9};
limite=sizeof(vector)/sizeof(vector[0]);
for(int i=0;i<limite;i++)
{
cout<<"ingrese el numero que multiplicara el vector"<<endl;
cin>>numero;
cout<<"resultado:"<<vector[i]*numero<<endl;
}
}
Multiplicacion de vectores en c
int i=0;
int num;
int tope = vector.length();
while(i < tope){
cout<<"Ingrese un numero para multiplicarlo al valor "<<vector[i]<<endl;
cin>> num;
vector[i] = vector[i]*num;
i++;
}
// ahora recorremos el vector con sus nuevos valores
for (int i =0 ; i < tope ; i++){
cout<<vector[i] <<" " ;
}
multiplicacion de vectores
#include <iostream>
#include <vector>
int main()
{
int n;
vector<int> numeros(10);
//se declara el vector
numeros[0] = 2;
numeros[1] = 1;
numeros[2] = 4;
numeros[3] = 3;
numeros[4] = 6;
numeros[5] = 5;
numeros[6] = 8;
numeros[7] = 7;
numeros[8] = 10;
numeros[0] = 9;
// se inicialia el vector
for(int i = 0; i < numeros.size(); i++)// se multiplican los numeros
{
int N; cin >> N;
int multiplicacion = N * numeros[i]
cout << multiplicacion << " ";// si se necesita imprimir la multiplicacion
}
}
otra forma de resolver el ejercicio
#include <iostream>
#include <vector>
using namespace std;
int main(){
int factor = 0;
vector <int> numeros = {2,1,4,3,6,5,8,7,6,9};
for(int x = 0; x < numeros.size(); x++){
cout << "ingrese un numero para -> "<<numeros[x]<<" x ";
cin >> factor;
cout << " ==> "<<numeros[x]*factor<<"\n\n" ;
}
return 0;
}
respuesta
#include <iostream>
using namespace std;
int main()
{
int limite,numero;
int vector[]={2,1,4,3,6,5,8,7,10,9};
limite=sizeof(vector)/sizeof(vector[0]);
cout<<"ingrese el numero que multiplicara el vector"<<endl;
cin>>numero;
for(int i=0;i<limite;i++)
{
cout<<"resultado:"<<vector[i]*numero<<endl;
}
}
#include<vector> #include…
#include<vector>
#include<iostream>
using std::vector;
int main(int argc, char const *argv[])
{
int numero;
vector<int> v{2,1,4,3,6,5,8,7,10,9};
std::cin>>numero;
for (int i = 0; i < v.size(); ++i)
{
std::cout<<v[i]<<"\t"; //Imprime los valores asignados en el vector
}
std::cout<<"\n";
for (int i = 0; i < v.size(); ++i)
{
v[i]*=numero; //multiplica los valores por el numero asignado
std::cout<<v[i]<<"\t"; //muestra los nuevos valores del vector
}
}
Añadir nuevo comentario