Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad


Fundamentos de Informática: Apuntes sobre Vectors, Apuntes de Informática

En este documento se presentan los conceptos básicos de los vectores en Informática, su declaración y manipulación utilizando la biblioteca Standard Template Library (STL) de C++. Se explica cómo acceder a sus elementos, cómo determinar su longitud y cómo agregar, eliminar y cargar vectores desde archivos.

Tipo: Apuntes

2020/2021

Subido el 12/05/2021

albagg2
albagg2 🇪🇸

1 / 15

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
Alfredo Vellido : www.cs.upc.edu/~avellido
Fonaments d’Informàtica: 2ºP
Semanas 3-…: Tipos estructurados (vectores)
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff

Vista previa parcial del texto

¡Descarga Fundamentos de Informática: Apuntes sobre Vectors y más Apuntes en PDF de Informática solo en Docsity!

Alfredo Vellido : www.cs.upc.edu/~avellido

Fonaments d’Informàtica: 2ºP

Semanas 3 - …: Tipos estructurados (vectores)

Qué son los vectores y por qué los necesitamos

  • Las tablas unidimensionales (arrays) nos obligan a reservar un número (limitado) de posiciones en memoria; es decir, tienen una longitud máxima inamovible por definición
  • Hemos visto que los strings son tablas “especiales” de caracteres que no tienen longitud predefinida.
  • Los vectores se benefician de “lo mejor de ambos mundos”: son como tablas con elementos accesibles por índice, pero no tienen longitud predefinida. Eso hace que podamos definir vectores de una longitud casi arbitraria.

¿Cómo acceder a vectores?

  • Accedemos a casillas de vectores de la misma forma que accederíamos a casillas de tablas, mediante indexación. vector v(10); v[0]=5; int a = v[0]; cout << a;

El final de un vector y qué hacer con él

  • No sabemos necesariamente a priori cuál es la longitud de un vector en un momento dado de la ejecución de un programa … pero tenemos herramientas para saberlo … vector v(10); tam = v.size(); for (int i=0; i<tam; i++) …

El final de un vector y qué hacer con él

  • Así como un método para quitar elementos al final de un vectorvector v(4,'z'); v.pop_back(); cout << v.size() << endl; // qué se ve?

El final de un vector y qué hacer con él

  • Y por supuesto un método para cargárnoslo todo … vector v(4,'z'); v.clear(); cout << v.size() << ' ' << v.empty() << endl;

El final de un vector y qué hacer con él

  • ¿Qué veremos en pantalla? vector v(10); int tam = v.size(); cout << tam << endl; for (int i=0; i<tam; i++) v.push_back(i); for (int i=0; i<tam; i++) cout << v[i]; cout << endl; int tam2 = v.size(); cout << tam2 << endl; for (int i=0; i<tam2; i++) cout << v[i]; cout << endl;

Jugando con grandes vectores desde ficheros

  • Almacenar en un fichero la secuencia invertida de ecoli usando vectores. #include #include #include using namespace std; int main() { vector v_ecoli; ifstream fin("ecoli.txt"); char nuc; fin >> nuc; while (!fin.eof()) { v_ecoli.push_back(nuc); fin >> nuc;} ofstream fout("ecoli_reves.txt"); int tam = v_ecoli.size(); for (int i = 0; i < tam; i++) { fout << v_ecoli[tam- 1 - i]; if (i%1024 == 1023) fout << endl; } }

Vectores como parámetros de subprogramas Escribir un subprograma que concatene y retorne concatenados dos vectores pasados como parámetros. vector concatena(const vector& v1, const vector& v2) { vector resultado = v1; for (int i = 0; i < v2.size(); i++) { resultado.push_back(v2[i]); } return resultado; }

Vectores como parámetros de subprogramas Escribid una función apariciones que reciba un vector de strings v y una palabra p y retorne cuántas veces aparece p en v.