STD::matriz en C++
La matriz es una colección de objetos homogéneos y este contenedor de matriz está definido para matrices de tamaño constante o (tamaño estático). Este contenedor envuelve matrices de tamaño fijo y la información de su tamaño no se pierde cuando se declara en un puntero.
Para utilizar matrices, debemos incluir el encabezado de la matriz:
#include
Veamos un ejemplo.
CPP
// CPP program to demonstrate working of array> #include> #include> #include> #include> #include> using> namespace> std;> int> main() {> > // construction uses aggregate initialization> > // double-braces required> > array <> int> , 5>o1{{3, 4, 5, 1, 2}};> > array <> int> , 5>ar2 = {1, 2, 3, 4, 5};> > array ar3 = {{string(> 'a'> ),> 'b'> }};> > cout < <> 'Sizes of arrays are'> < < endl;> > cout < < ar1.size() < < endl;> > cout < < ar2.size() < < endl;> > cout < < ar3.size() < < endl;> > > cout < <> '
Initial ar1 : '> ;> > for> (> auto> i : ar1)> > cout < < i < <> ' '> ;> > // container operations are supported> > sort(ar1.begin(), ar1.end());> > cout < <> '
sorted ar1 : '> ;> > for> (> auto> i : ar1)> > cout < < i < <> ' '> ;> > // Filling ar2 with 10> > ar2.fill(10);> > cout < <> '
Filled ar2 : '> ;> > for> (> auto> i : ar2)> > cout < < i < <> ' '> ;> > // ranged for loop is supported> > cout < <> '
ar3 : '> ;> > for> (> auto> &s : ar3)> > cout < < s < <> ' '> ;> > return> 0;> }> |
Producción:
Sizes of arrays are 5 5 2 Initial ar1 : 3 4 5 1 2 sorted ar1 : 1 2 3 4 5 Filled ar2 : 10 10 10 10 10 ar3 : a b
Esta matriz STL de C++ es una especie de contenedor secuencial y no se usa mucho en la programación normal o en la programación competitiva, pero a veces su función miembro le proporciona una ventaja superior sobre la matriz normal que usamos en nuestra vida diaria. Entonces, estamos discutiendo algunas de las funciones miembro importantes que se usan con este tipo de matriz:
Las funciones de los miembros para la plantilla de matriz son las siguientes:
Sintaxis: matriz nombre_arr;
a) [ ] Operador : Esto es similar a la matriz normal, la usamos para acceder al almacén de elementos en el índice 'i'.
Ex:
C++
#include> #include> using> namespace> std;> int> main() {> > array <> char> , 3>arr={> 'G'> ,> 'f'> ,> 'G'> };> > cout < ' ' < return 0; }> |
Producción
G G
b) función frontal ( ) y posterior ( ): Estos métodos se utilizan para acceder directamente al primer y último elemento de la matriz.
C++
#include> #include> using> namespace> std;> int> main() {> > array <> int> , 3>arr={> 'G'> ,> 'f'> ,> 'G'> };> // ASCII val of 'G' =71> > cout < ' ' < return 0; }> |
Producción
71 71
c) función de intercambio (): Esta función de intercambio se utiliza para intercambiar el contenido de las dos matrices.
Ex:
C++
#include> #include> using> namespace> std;> int> main() {> > array <> int> , 3>arr={> 'G'> ,> 'f'> ,> 'G'> };> // ASCII val of 'G' =71> > array <> int> , 3>arr1={> 'M'> ,> 'M'> ,> 'P'> };> // ASCII val of 'M' = 77 and 'P' = 80> > arr.swap(arr1);> // now arr = {M,M,P}> > cout < ' ' < return 0; }> |
Producción
77 80
d) función vacía (): Esta función se utiliza para comprobar si la matriz STL declarada está vacía o no; si está vacía, devuelve verdadero; de lo contrario, falso.
Ex:
C++
#include> #include> using> namespace> std;> int> main() {> > array <> int> , 3>arr={> 'G'> ,> 'f'> ,> 'G'> };> // ASCII val of 'G' =71> > array <> int> , 3>arr1={> 'M'> ,> 'M'> ,> 'P'> };> // ASCII val of 'M' = 77 and 'P' = 80> > bool> x = arr.empty();> // false ( not empty)> > cout < return 0; }> |
Producción
false
e) en ( ) función: Esta función se utiliza para acceder al elemento almacenado en una ubicación específica; si intentamos acceder al elemento que está fuera de los límites del tamaño de la matriz, se genera una excepción.
Ex:
C++
#include> #include> using> namespace> std;> int> main() {> > array <> int> , 3>arr={> 'G'> ,> 'f'> ,> 'G'> };> // ASCII val of 'G' =71> > array <> int> , 3>arr1={> 'M'> ,> 'M'> ,> 'P'> };> // ASCII val of 'M' = 77 and 'P' = 80> > cout < < arr.at(2) < <> ' '> < < arr1.at(2);> > //cout < < arr.at(3); // exception{Abort signal from abort(3) (SIGABRT)}> > return> 0;> }> |
Producción
71 80
f) función de relleno (): Esto se usa especialmente para inicializar o llenar todos los índices de la matriz con un valor similar.
Ex:
C++
#include> #include> using> namespace> std;> int> main() {> > array <> int> , 5>arr;> > arr.fill(1);> > for> (> int> i: arr)> > cout < ' '; return 0; }> |
Producción
1 1 1 1 1
g) función size() o max_size() y sizeof(): Tanto size() como max_size() se usan para obtener el número máximo de índices en la matriz, mientras que sizeof() se usa para obtener el tamaño total de la matriz en bytes.
C++
#include> #include> using> namespace> std;> int> main() {> > array <> int> , 10>llegar;> > cout < '
'; // total num of indexes cout < '
'; // total num of indexes cout < |
Producción
10 10 40
h) datos( ): Esta función devuelve el puntero al primer elemento del objeto de matriz. Porque los elementos de la matriz se almacenan en ubicaciones de memoria contiguas. Esta función data() nos devuelve la dirección base del objeto tipo cadena/char.
Ex:
C++
#include> #include> #include> using> namespace> std;> int> main ()> {> > const> char> * str => 'techcodeview.com'> ;> > array <> char> ,13>arr;> > memcpy> (arr.data(),str,13);> > cout < < arr.data() < <> '
'> ;> > return> 0;> }> |
techcodeview.com
I) cbegin( ) y cend( ): vaya a este enlace GFG: Haz click en mi