Matrices asociativas en C++

Saad Aslam 12 octubre 2023
  1. Una descripción general de las matrices en C++
  2. Matrices asociativas en C++
Matrices asociativas en C++

En este artículo, comprenderemos las matrices asociativas y su implementación en el lenguaje de programación C++.

Una descripción general de las matrices en C++

Una matriz es una colección de objetos que incluyen un conjunto de variables guardadas con el mismo nombre. Todos los elementos son del mismo tipo de datos; el tipo puede ser una lista, un entero o una cadena.

Usted define una variable de matriz, como números, y luego usa los índices números [0], números [1], y así sucesivamente hasta números [99] para representar variables individuales en lugar de definir cada variable individualmente, como número0, número1,... y número99. Se puede llegar a uno particular de los elementos de una matriz mediante el uso de un índice.

Hay dos tipos de matrices: matrices indexadas y asociativas. Tanto las matrices indexadas como las asociativas tienen claves únicas que solo se pueden usar una vez.

Una matriz con una clave numérica se denomina matriz indexada. En su forma más básica, toma la forma de una matriz, con cada clave de matriz conectada a su propio valor.

Matrices asociativas en C++

En esta sección, nos concentraremos en arreglos asociativos en C++.

Un tipo único de matriz conocida como matriz asociativa es aquella en la que el valor del índice puede ser de cualquier tipo de datos. El índice puede ser cualquiera de los siguientes: un número entero, un carácter, un valor de punto flotante, una cadena, etc.

Sin embargo, los valores de índice deben ser completamente únicos para obtener acceso a los elementos de datos incluidos en la matriz. El nombre dado al índice en una matriz asociativa se denomina clave, y los datos almacenados en ese lugar en particular se denominan valor.

Como resultado, podemos conceptualizar la matriz asociativa como un par clave-valor. Por lo tanto, los componentes de una matriz asociativa son pares que consisten en una clave y un valor.

Implementación de las matrices asociativas en C++

En el lenguaje de programación C++, las matrices asociativas también pueden denominarse mapas. Veamos un ejemplo para ilustrar cómo construir el mapa en C++ de modo que devuelva una clave contra el valor analizado.

Primero, necesitamos importar las bibliotecas para que nuestra aplicación pueda usar el mapa y los otros métodos.

#include <iostream>
#include <map>

Cree un mapa cgpa con el tipo de cadena como clave y el tipo flotante como valor dentro del método main() de su programa. Rellene el mapa con algunos valores de cadenas y flotantes en los espacios apropiados.

map<string, float> cgpa{{"Nabeel", 3.3},
                        {"Daniyal", 3.7},
                        {"Saad", 3.4},
                        {"Hamza", 3.1},
                        {"Zeeshan", 3.9}};

Cree un iterador para el mapa.

map<string, float>::iterator i;

Muestra un mensaje que enumera todos los valores incluidos en el mapa. Cree un bucle for que muestre todos los valores a medida que itera por el mapa de principio a fin.

cout << "The CGPA of all the students is as follows:" << endl;
for (i = cgpa.begin(); i != cgpa.end(); i++) {
  cout << i->first << " - " << i->second << endl;
}

Ahora, obtengamos algunos valores del mapa en función de sus claves.

cout << "\nThe CGPA of Hamza is: " << cgpa["Hamza"] << endl;
cout << "\nThe CGPA of the Delft Stack writer Saad is: " << cgpa["Saad"]
     << endl;

Código fuente completo:

#include <iostream>
#include <map>

using namespace std;

int main() {
  map<string, float> cgpa{{"Nabeel", 3.3},
                          {"Daniyal", 3.7},
                          {"Saad", 3.4},
                          {"Hamza", 3.1},
                          {"Zeeshan", 3.9}};

  map<string, float>::iterator i;

  cout << "The CGPA of all the students is as follows:" << endl;
  for (i = cgpa.begin(); i != cgpa.end(); i++) {
    cout << i->first << " - " << i->second << endl;
  }

  cout << "\nThe CGPA of Hamza is: " << cgpa["Hamza"] << endl;
  cout << "\nThe CGPA of the Delft Stack writer Saad is: " << cgpa["Saad"]
       << endl;
}

Producción :

The CGPA of all the students is as follows:
Daniyal - 3.7
Hamza - 3.1
Nabeel - 3.3
Saad - 3.4
Zeeshan - 3.9

The CGPA of Hamza is: 3.1

The CGPA of the Delft Stack writer Saad is: 3.4
Autor: Saad Aslam
Saad Aslam avatar Saad Aslam avatar

I'm a Flutter application developer with 1 year of professional experience in the field. I've created applications for both, android and iOS using AWS and Firebase, as the backend. I've written articles relating to the theoretical and problem-solving aspects of C, C++, and C#. I'm currently enrolled in an undergraduate program for Information Technology.

LinkedIn

Artículo relacionado - C++ Array