1. matriz de matriz estática
La matriz estática (matriz), es una matriz de uso común, que pertenece a la estructura de datos lineales, y la asignación usa directamente el signo igual
a[1] = 3;
Defina una matriz estática de la siguiente manera:
int a[空间];
Entre ellos, el espacio ronda los 60000000
Podemos tratar la matriz como una tabla.
La matriz comienza desde la posición 0. Cuando el subíndice de la matriz <0, se producirá un RuntimeError
Esta es una matriz 1D, seguida de una matriz 2D
int a[空间][空间];
Entre ellos, el espacio² ronda los 60000000
Ampliar el tamaño de la tabla:
Tomemos un ejemplo de una matriz
prefijo y
Sumas de prefijos unidimensionales:
for (int i = 1; i <= n; i++)
d[i] = d[i - 1] + a[i];
Cuando i = 1, el subíndice de d[i - 1] en el enunciado es 0
Si empiezo desde 0, será RE.
2, vectores
vector es similar a una matriz estática, pero necesita usar push_back para empujar
En comparación con la matriz, el vector no necesita la asignación del usuario, y cuando se inserta un valor de forma predeterminada, el vector lo almacena en 0
#include <vector> //vector头文件
...
vector<存储的东西的类型> v;
...
cin >> n;
v.push_back(n);
cout << v[0];
Tres, cola cola
cola cola
como hacer cola para una tortuga
La cola usa push to push y pop to pop up
definirlo:
queue<int> q;
push() inserta un elemento al final de la cola
q.push(3);
pop() extrae el primer elemento
q.pop();
size() devuelve el número de elementos
int t = q.size();
vacío () está vacío, verdadero si está vacío
if (q.empty()) {
...
}
front() devuelve el primer elemento
int t = q.front();
back() devuelve el último elemento
int t = q.back();
No olvides el archivo de encabezado:
#include <queue>
Cuatro, cola de prioridad cola_prioridad
Priority_queue agrega una función de clasificación predeterminada en función de la cola.
Por defecto, el más grande está en la parte superior:
priority_queue<int> q;
Definición especial pequeña en la parte superior:
priority_queue<int, vector<int>, greater<int> > q;
cinco, pila pila
Stack stack generalmente se mencionan juntos porque son muy similares. La cola es primero en entrar, primero en salir, lo cual es justo, pero la pila es muy injusta. Es primero en entrar, primero en salir (¿primero en entrar, primero en salir?).
Podemos usar un túnel sellado en un extremo (la cola es un túnel normal) para verlo
esto es dentro y fuera
Archivo principal:
#include <stack>
Defina la pila:
stack<int> s;
Las declaraciones de manipulación de la pila y la cola son casi las mismas.
seis, mapa
mapa, una estructura de datos particularmente poderosa
Hable acerca de su almacenamiento:
1. Cuando el número a almacenar está dentro del rango de int, el mapa puede realizar
2. El subíndice del mapa puede ser de cualquier tipo
!!!!!
El recorrido del mapa necesita usar el iterador
Archivo principal:
#include <map>
Definir mapa:
Hay dos tipos entre paréntesis angulares al definir un mapa, el primero es el tipo de subíndice y el segundo es el tipo de lo almacenado.
map<int, int> m;
//本map指int类型的下标存储着int类型(array中表示a[1] = 1)
map<string, double> m;
//本map指string类型的下标存储着double类型
(array中表示a["string"] = 1.1,在array中不可实现)
Úsalo para atravesar:
for (map<类型,类型>::iterator it = m.begin(); it != m.end(); it++) {
...
}
siete, conjunto
conjunto, ligeramente más bajo que el mapa, también almacena varios tipos
#include <set> //头文件
using namespace std;
set<int> s;
int main () {
s.insert(1); //set使用插入
for (set<int>::iterator it = ...) {
...
}
return 0;
}
Por supuesto, hay otras estructuras de datos, como listas enlazadas, etc., puede comprobarlas usted mismo.
Estos archivos de encabezado se pueden reemplazar por un archivo de encabezado, que es el archivo de encabezado universal
#include <bits/stdc++.h>