Está en la página 1de 3

Librerias generales:

#include <iostream>
#include <cmath>

using namespace std;

Vectores: vector<T>
#include <vector>
#include <algorithm> // sort

vector<int> v(n); // De n elementos


vector<int> v; // Vacio
v.push_back(n); // Inserto
sort(v.begin(), v.end()); //ordena un vector de menor a mayor
// Itero
for(vector<int>::iterator it = v.begin(); it!=v.end(); ++it) {
suma += *it;
}
// Como argumento (si se quiere modificar, quitad el “const”)
void escribe_vector(const vector<int> &v) {
for(int i=0;i<v.size();++i) {
cout << v[i] << " ";
}
}
// Matriz
vector<vector<double> > M(5) //matriz de 5 filas vacias (5x0)
for(int i=0;i<M.size();++i) {
M[i].resize(3); //ahora obtenemos matriz (5x3)
}
VVI M2(5,VI(3)); //otro modo de tener una matriz 5x3
//rellenamos las matrices
for(int i=0;i<M.size();++i) {
for(int j=0;j<M[i].size();++j) {
M[i][j]=M2[i][j]=i+j;
}
}

Pilas y colas: stack<T> y queue<T>


#include <stack>
#include <queue>

// Metodo empty() para saber si esta vacia


// push(const T &t) añade en la cima
// pop() elimina el ultimo
// Para consultar T &front() (para colas) y T &top() (para pilas)
// Ejemplo de cola para leer palabras y escribirlas al contrario
int main() {
stack<string> pila;
string s;
while (cin >> s) pila.push(s);
while (not pila.empty()) {
cout << pila.top();
pila.pop();
}
}
Listas: list<T>
#include <list>

list<string> l; // Vacia ( se puede saber con l.empty() )


l.push_back(s); // Inserto al final
l.push_front(s); // Inserto al principio
l.back(s); // Obtengo el elemento del filal
l.front(s); // Obtengo el elemento del principio
l.pop_back(s); // Elimino el elemento del filal
l.pop_front(s); // Elimino el elemento del principio
l.size(); // Tamaño
l.clear(s); // La vacio
l.erase(it); // Elimino el elemento de la posición del iterador
l.insert(it,e); // Añade el elemento antes de la pos. de it
l.reverse(); // Gira la lista
l.unique(); // Elimina los elementos duplicados
l.pop_front(s); // Elimino el elemento del principio
l1.merge(l2); // Fusiona dos listas (l2 se borra) y ordena
l.sort(); // Ordena la lista
bool compara(const T &a, const T &b) {
return (condicion);
}
l.sort(compara) // Comparacion personalizada
l.merge(l2); // Fusiona dos listas (l2 se borra) y ordena
// juntar: l1 = l1,l2
l1.splice(l1.end(), l2, l2.begin(), l2.end());
// juntar: l1 = l2,l1
l1.splice(l1.begin(), l2, l2.begin(), l2.end());
// romper:
// de l1=la,lb, l2=vacia, itb apunta a lb en l1;
// obtener l1=la, l2=lb
l2.splice(l2.begin(), l1, itb, l1.end());

Algoritmos utiles:
// Algoritmo para factorizar sencillo
int n = numero;
while(n%2 == 0) {
n = n/2;
}

for (int i = 3; i <= sqrt(n); i = i+2) {


while (n%i == 0) {
cout << i << endl; // Factor
n = n/i;
}
}
// Algoritmo de primalidad
bool primo(int n) {
for(int i = 2; i <= sqrt(n); i++){
if(n % i == 0)
return false;
}
return true;
}
Funciones utiles:
#include <iomanip> // setprecision(x), x decimales
cout << fixed << setprecision(2) << numero << endl;

#include <stdlib.h> // atof


double d = atof(cadena.c_str()) // Pasa de string a double

// Distancia punto-recta, (x, y), y = ax+b


double d = abs(a*x-y+b)/sqrt(a*a+1);
double r = angulo*(M_PI/180.0); // angulo a radianes

#include <math.h>
ceil(n) // Redondea por exceso
floor(n) // Redondea por defecto
round(n) // Redondea

También podría gustarte