[Creación del 1 de mayo] c ++ siete estructuras de datos de uso común

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>

Supongo que te gusta

Origin blog.csdn.net/Runcode8/article/details/130441587
Recomendado
Clasificación