¿Cómo declarar una matriz bidimensional de cadenas en C++? y también cómo escribir esta cadena en los archivos?inicialización de una matriz bidimensional de cadenas
Respuesta
Se puede declarar una matriz multidimensional de cadenas como esto:
std::string myArray[137][42];
Por supuesto, sustituyendo sus propios valores de anchura/altura de 137 y 42. :-)
No hay "una forma correcta "para escribir esta matriz en el disco. Básicamente iterará sobre la matriz escribiendo una cadena a la vez en el disco, con algún tipo de separadores apropiados y lógica de comprobación de errores. He aquí una aplicación ingenua, que escribe a cabo una cuerda por línea (suponiendo que las cadenas no tienen ningún saltos de línea en ellos):
std::ofstream output("result.txt");
for (size_t i = 0; i < 137; ++i)
for (size_t j = 0; j < 42; ++j)
output << myArray[i][j] << std::endl;
Espero que esto ayude! Declaración
do 'output.close()' al final. –
No es necesario; cuando el objeto de flujo sale del alcance, el destructor cerrará el archivo. – templatetypedef
typedef std::vector<std::string> StringVector;
typedef std::vector<StringVector> StringVector2D;
StringVector2D twoD;
for (StringVector2D::iterator outer = twoD.begin(); outer != twoD.end(); ++outer)
for (StringVector::iterator inner = outer->begin(); inner != outer->end(); ++inner)
std::cout << *inner << std::endl;
e inicialización juntos:
std::string myarray[2][3] = {
{ "hello", "jack", "dawson" },
{ "hello", "hello", "hello" }
};
Para escribir en el archivo, la respuesta de templatetypedef es casi bien, excepto que debe hacer la comprobación de errores y cerrar el flujo de archivo de salida cuando haya terminado.
Supongo que tiene el tipo QString. Esto debería funcionar para std :: string e incluso (char *) correctamente.
QString ** myTwoDimensionalArray;
myTwoDimensionalArray = new QString*[size_x];
for(int i=0; i<size_x; i++) myTwoDimensionalArray[i] = new QString[size_y];
Eso es todo. Ahora, usted puede escribir algo como:
myTwoDimensionalArray[x][y] = "Hello, World!";
#include<iostream>
#include<vector>
using namespace std;
main()
{
vector< vector<string> > m2m;
vector<string> A, B;
vector< vector<string> >::iterator inter_i;
vector<string>::iterator inter_j;
A.push_back("micro");
A.push_back("soft");
A.push_back("bilgates");
B.push_back("linux");
B.push_back("unix");
B.push_back("ken dennish");
m2m.push_back(A);
m2m.push_back(B);
cout<<endl<<" USing iterator : "<<endl;
for(inter_i=m2m.begin();inter_i!=m2m.end();inter_i++)
{
for(inter_j=(*inter_i).begin();inter_j!=(*inter_i).end();inter_j++)
{
cout<<*inter_j<<" ";
}
cout<<endl;
}
return 0;
}
- 1. imprimir una matriz bidimensional de cadenas como String
- 2. push() una matriz bidimensional
- 3. 2 lista matriz bidimensional
- 4. jquery creando una matriz bidimensional
- 5. matriz bidimensional de diferentes tipos
- 6. Java - impresión de matriz bidimensional
- 7. Comandos de matriz y división para crear una matriz bidimensional
- 8. matriz bidimensional en ios
- 9. matriz bidimensional en python
- 10. Error del compilador: Especificador de rango inválido: esperado ',' o ']' en Inicialización de matriz bidimensional
- 11. Encontrar vecinos en una matriz bidimensional
- 12. buscar una matriz bidimensional en java
- 13. Php empujando valores a una matriz bidimensional
- 14. Rotar una matriz bidimensional en 90 grados
- 15. Ordenar una matriz bidimensional por segundo valor
- 16. ¿Obtienes elementos adyacentes en una matriz bidimensional?
- 17. Inicializar una gran matriz bidimensional en C++
- 18. ¿Por qué es peor inicializar una matriz bidimensional como esta?
- 19. Cómo convertir matriz bidimensional a una matriz unidimensional en php5
- 20. inicialización del conjunto de cadenas
- 21. ¿Cómo puedo ordenar una matriz bidimensional en C#?
- 22. "columnas" de las submatrices de una matriz bidimensional
- 23. Solo lectura de matriz bidimensional en C#
- 24. ¿La forma más fácil de implosionar() una matriz bidimensional?
- 25. Creación de una matriz bidimensional en Objective-C
- 26. ¿Cómo puedo crear una matriz de longitud dinámica bidimensional?
- 27. Generar una matriz bidimensional a través de LINQ
- 28. ¿Cómo hash una matriz bidimensional de dos estados?
- 29. ¿Encontrar la posición de un elemento en una matriz bidimensional?
- 30. Rendimiento de matriz bidimensional vs matriz 1 dimensional
¿Qué tipo de cuerdas? ¿Literales de cadena? C cadenas? 'std :: string' objetos? '¿Objetos de CString'? Objetos 'QString'? Cadenas Unicode de algún tipo? Cadenas cifradas? ¿Algún otro tipo de cuerdas? ¿En qué tipo de archivo necesitas escribirlos? ¿Deben codificarse de una manera particular en el archivo? ¿Tiene [un buen libro introductorio de C++] (http://stackoverflow.com/questions/388242/the-definitive-c++book-guide-and-list)? Si es así, ¿lo has consultado? Si no, deberías obtener uno. –