En C++, una cadena suele ser solo una matriz de (o una referencia/apunta a) caracteres que termina con el carácter NULL ' '. Una cadena es una matriz de caracteres unidimensional y una matriz de cadenas es una matriz de caracteres bidimensionaldonde cada fila contiene alguna cadena.
A continuación se muestran 5 formas diferentes de crear una matriz de cadenas en C++:
- Usando Consejos
- Usando Matriz 2D
- Utilizando el Clase de cadena
- Utilizando el Clase vectorial
- Utilizando el Clase de matriz
1. Usando punteros
Los punteros son la representación simbólica de una dirección. En palabras simples, un puntero es algo que almacena la dirección de una variable en él. En este método, se crea una matriz de cadenas literales mediante una matriz de punteros en los quecada puntero apunta a una cadena en particular.
Ejemplo:
C++
// C++ program to demonstrate> // array of strings using> // pointers character array> #include> // Driver code> int> main()> {> >// Initialize array of pointer> >const> char>* colour[4]> >= {>'Blue'>,>'Red'>,>'Orange'>,>'Yellow'> };> >// Printing Strings stored in 2D array> >for> (>int> i = 0; i <4; i++)> >std::cout << colour[i] <<>'
'>;> >return> 0;> }> |
actriz india rani mukerji
>
>Producción
Blue Red Orange Yellow>
Explicación:
- El número de cadenas es fijo, pero no es necesario. Se puede omitir el 4 y el compilador calculará el tamaño correcto.
- Estas cadenas son constantes y su contenido no se puede cambiar. Debido a que las cadenas literales (literalmente, las cadenas entrecomilladas) existen en un área de memoria de sólo lectura, debemos especificar const aquí para evitar accesos no deseados que puedan bloquear el programa.
2. Usando una matriz 2D
Una matriz 2-D es la forma más simple de una matriz multidimensional en la que almacena los datos en forma tabular. Este método es útil cuando se conoce la longitud de todas las cadenas y se desea una huella de memoria particular. El espacio para cadenas se asignará en un solo bloque.
Ejemplo:
C++
diccionario de clasificación de Python
// C++ program to demonstrate> // array of strings using> // 2D character array> #include> // Driver code> int> main()> {> >// Initialize 2D array> >char> colour[4][10]> >= {>'Blue'>,>'Red'>,>'Orange'>,>'Yellow'> };> >// Printing Strings stored in 2D array> >for> (>int> i = 0; i <4; i++)> >std::cout << colour[i] <<>'
'>;> >return> 0;> }> |
>
>Producción
Blue Red Orange Yellow>
Explicación:
- Tanto el número de cadenas como el tamaño de las mismas son fijos. El 4, nuevamente, puede omitirse y el compilador calculará el tamaño apropiado. Sin embargo, se debe proporcionar la segunda dimensión (en este caso, 10), para que el compilador pueda elegir un diseño de memoria apropiado.
- Cada cadena se puede modificar pero ocupará todo el espacio proporcionado por la segunda dimensión. Cada uno se colocará uno al lado del otro en la memoria y no podrá cambiar de tamaño.
- A veces, es deseable controlar el uso de memoria y esto asignará una región de memoria con un diseño fijo y regular.
3. Usando la clase String
La cadena STL o clase de cadena se puede utilizar para crear una matriz de cadenas mutables. En este método, el tamaño de la cadena no es fijo y las cadenas se pueden cambiar, lo que de alguna manera lo hace dinámico por naturaleza. std::cadena se puede utilizar para crear una matriz de cadenas utilizando funciones integradas.
Ejemplo:
C++
// C++ program to demonstrate> // array of strings using> // string class> #include> #include> // Driver code> int> main()> {> >// Initialize String Array> >std::string colour[4]> >= {>'Blue'>,>'Red'>,>'Orange'>,>'Yellow'> };> >// Print Strings> >for> (>int> i = 0; i <4; i++)> >std::cout << colour[i] <<>'
'>;> }> |
>
>Producción
Blue Red Orange Yellow>
Explicación:
La matriz tiene un tamaño fijo, pero no es necesario. Nuevamente, se puede omitir el 4 aquí y el compilador determinará el tamaño apropiado de la matriz. Las cuerdas también son mutables, lo que permite cambiarlas.
hora de fecha local java
4. Usando la clase vectorial
A vector es una matriz dinámica que duplica su tamaño cada vez que se agrega un nuevo carácter que excede su límite. El vector contenedor STL se puede utilizar para asignar dinámicamente una matriz que puede variar en tamaño.
Esto sólo se puede utilizar en C++, ya que C no tiene clases. Tenga en cuenta que la sintaxis de la lista de inicializadores aquí requiere un compilador que admita el estándar C++ 2011 y, aunque es muy probable que su compilador lo haga, es algo que debe tener en cuenta.
Ejemplo:
flujo de filtro java
C++
// C++ program to demonstrate> // array of strings using> // vector class> #include> #include> #include> // Driver code> int> main()> {> >// Declaring Vector of String type> >// Values can be added here using> >// initializer-list> >// syntax> >std::vector colour{>'Blue'>,>'Red'>,> >'Orange'>};> >// Strings can be added at any time> >// with push_back> >colour.push_back(>'Yellow'>);> >// Print Strings stored in Vector> >for> (>int> i = 0; i std::cout << colour[i] << '
'; }> |
>
>Producción
Blue Red Orange Yellow>
Explicación:
- Los vectores son matrices dinámicas y le permiten agregar y eliminar elementos en cualquier momento.
- Se puede utilizar cualquier tipo o clase en vectores, pero un vector determinado sólo puede contener un tipo.
5. Usando la clase de matriz
Una matriz es una mezcla homogénea de datos que se almacena continuamente en el espacio de la memoria. La matriz de contenedores STL se puede utilizar para asignar una matriz de tamaño fijo. Puede usarse de manera muy similar a un vector, pero el tamaño siempre es fijo.
Ejemplo:
C++
código de número aleatorio c
// C++ program to demonstrate> // array of string using STL array> #include> #include> #include> // Driver code> int> main()> {> >// Initialize array> >std::array colour{>'Blue'>,>'Red'>,> >'Orange'>,>'Yellow'>};> >// Printing Strings stored in array> >for> (>int> i = 0; i <4; i++)> >std::cout << colour[i] <<>'
'>;> >return> 0;> }> |
>
>Producción
Blue Red Orange Yellow>
Éstas no son de ninguna manera las únicas formas de crear una colección de cadenas. C++ ofrece varias clases de contenedores, cada una de las cuales tiene diversas compensaciones y características, y todas existen para cumplir con los requisitos que tendrá en sus proyectos. ¡Explora y diviértete!
Conclusión: De todos los métodos, Vector parece ser la mejor manera de crear una matriz de cadenas en C++.
s.