Hay un total de 745 Preguntas. | << >> |
Pregunta: | 3336 - CONTENEDORES DE STL |
Autor: | Andoni |
Hola a todos, y gracias de antemano. Estoy programando un lector de XML con la librería de microsoft MsXml.dll. Una vez leído el fichero xml queremos meterlo en una estructura en memoria y habíamos pensado en un contenedor STL, pero no consigo instanciar uno. Alguien sabe como se hace? He probado con lo que viene en la ayuda es decir, primero hacer el include del map #include <map> y definir el conjunto: typedef map< int, string, less<int>, allocator<string> > tipochupi>; pero me da error. Supongo que será un error de sintaxis pero es que no consigo encontrarlo. En fin. Eso es todo. Gracias de nuevo. |
Respuesta: | Carlos Antonio |
Ante todo un saludo:
Ese problema con la clase map puede ser algo que me sucedio a mi hace un tiempo y es lo siguiente: parece que para poder "meter" algo dentro de un mapa el objeto a colocar debe tener un constructor vacio o sea debe tener esto en el .cpp clase1::clase1() { } espero que te sirva de lago |
Respuesta: | Albert Sansó Garrido |
#include <conio.h> #include <stdio.h> #include <iostream.h> #include <list> using namespace std; void main(void) { list<int> lst; lst.push_front(12); lst.push_front(15); cout << lst.back() << endl; } // y lo mismo haciendo el include con <deque>, <vector>, <stack> ... // pero siempre con el "using namespace std" |
Pregunta: | 3380 - LISTAS ENLAZADAS |
Autor: | ALDAIR PIRRINHA DE LOS SANTOS |
urgente!! soy estudiante de la UTC en Quintana Roo, Mexico, y tengo una dificultad para poder construir listas en lazadas en Tc++, desde crear el primer elemento, recorrer la lista, insertar...etc. si alguien pudiera ayudarme a construir la lista, y enviarme una breve explicacion, de verdad!!! se lo agradeceria...!!! Muchas gracias!! |
Respuesta: | Endos |
/******************************************************* * Demostracion del uso de listas doblemente enlazadas * * (c)2000 Endos, [email protected] * * - Dominio publico - * *******************************************************/ #include <stdio.h> struct ListaDoble { int UnDato; // Colocar los datos que sean necesarios // ... ListaDoble *Siguiente; // Puntero a la siguiente lista ListaDoble *Anterior; // Puntero a la anterior lista }inicioListaDoble; // Devuelve un puntero a la lista que sigue a ´ListaActual´ ListaDoble *SiguienteLista(ListaDoble *ListaActual) { return ListaActual->Siguiente; } // Devuelve un puntero a la lista anterior a ´ListaActual´ ListaDoble *AnteriorLista(ListaDoble *ListaActual) { return ListaActual->Anterior; } // Inserta una nueva lista justo detras de ´ListaActual´ ListaDoble *InsertarLista(ListaDoble *ListaActual) { // Crear una nueva ListaDoble *NuevaLista= new ListaDoble; // Actualizar punteros anterior y siguiente NuevaLista->Anterior=ListaActual; NuevaLista->Siguiente=SiguienteLista(ListaActual); if(NuevaLista->Siguiente) // Solo si no es NULL NuevaLista->Siguiente->Anterior=NuevaLista; ListaActual->Siguiente=NuevaLista; return NuevaLista; // Retornar la nueva lista creada } // Elimina la lista ´ListaActual´ y devuelve un puntero a la siguiente lista ListaDoble *EliminarLista(ListaDoble *ListaActual) { ListaDoble *Siguiente; // Actualizar los punteros de las listas anterior y siguiente a la actual Siguiente=SiguienteLista(ListaActual); // Aprovechar para guardar el siguiente ListaActual->Anterior->Siguiente=Siguiente; if(ListaActual->Siguiente) // Solo si no es NULL ListaActual->Siguiente->Anterior=AnteriorLista(ListaActual); // Ahora que ya tenemos resueltos los punteros podemos eliminar la lista delete ListaActual; return Siguiente; } // Test simple // NOTA: !!La lista 0 no se creo con ´new´ asi que no puede eliminarse!! int main(void) { ListaDoble *Primera=&inicioListaDoble; // Puntero a la primera lista ListaDoble *OtraLista; ListaDoble *Ultima; // Indicar que no hay nada antes y despues Primera->Anterior=NULL; Primera->Siguiente=NULL; Primera->UnDato=0; // Colocar un dato (lo haremos coincidir con su posicion) OtraLista=InsertarLista(Primera); // Insertar una nueva lista OtraLista->UnDato=1; for(int bucle=2; bucle<17; bucle++) // Insertar 15 listas mas { OtraLista=InsertarLista(OtraLista); OtraLista->UnDato=bucle; } // Listar los datos (Hay 17 listas - de 0 a 16 -) OtraLista=Primera; // Del principio al final printf("Aqui estan todas las listas creadas\n\n"); // Aprovecharemos tambien para borrar una lista while(OtraLista) // Repetir hasta alcanzar el NULL { printf("%u - ",OtraLista->UnDato); if(OtraLista->UnDato==8) // Si es la 8 borrarla OtraLista=EliminarLista(OtraLista); else OtraLista=SiguienteLista(OtraLista); } // Ahora volveremos a listar para ver si se eliminio la entrada novena (8) // a la par que insertamos una nueva entrada en medio de la lista // Las anteriores inserciones fueron al final de esta // Tambien eliminamos una entrada para que se vea que es posible insertar // y eliminar en cualquier parte sin problemas OtraLista=Primera; // Del principio al final printf("\n\nListando de nuevo, ahora no debe salir el 8" " que borramos antes\n pero si el 17 que insertamos ahora" " detras del 12\n\n"); while(OtraLista) // Hasta alcanzar el NULL que indica el final { Ultima=OtraLista; // Guardar la ultima printf("%u - ",OtraLista->UnDato); if(OtraLista->UnDato==2) // Si es la 2 borrarla OtraLista=EliminarLista(OtraLista); else if(OtraLista->UnDato==12) // Si es la 12 insertar una nueva (Nº17) { OtraLista=InsertarLista(OtraLista); OtraLista->UnDato=17; // Colocar aqui un 12 causaria un bucle infinito } else OtraLista=SiguienteLista(OtraLista); } // Ahora solo nos falta recorrer la lista al reves printf("\n\nListando de nuevo, ahora del ultimo al primero." " El 2 fue eliminado antes\n\n"); OtraLista=Ultima; // Ahora del ultimo al primero while(OtraLista) { printf("%u - ",OtraLista->UnDato); OtraLista=AnteriorLista(OtraLista); } // Ya hemos terminado y debemos liberar la memoria ocupada por las listas printf("\n\nBorrando todas las listas para liberar la memoria\n"); // RECUERDA: OtraLista=SiguienteLista(Primera); // La primera lista no se creo con ´new´ // asi que borrar a partir de la segunda printf("\nEliminando Listas "); while(OtraLista) // Repetir hasta que sea la ultima (NULL) { printf("%u, ",OtraLista->UnDato); OtraLista=EliminarLista(OtraLista); } // La memoria esta libre, insertamos, eliminamos y listamos en ambos sentidos printf("\n\nTest finalizado OK\n"); return 0; } |
Respuesta: | Eduard Garcia |
Puedes realizar la lista de dos maneras. La puedes realizar simplemente apuntada o doblemente apuntada. El metodo más adequado y que utilizo siempre es la lista doblemente apuntada, es mas compleja en su realización pero es mucho más fácil de recorrer. Por la largada de la respuesta, esta en el archivo resp3380.txt |
Pregunta: | 3387 - ARCHIVOS EN ESCALAS DE GIRS |
Autor: | juan guillermo jaramillo arias |
Necesito leer un archivo gráfico en escala de grises, he encontrado que lee archivos bmp a 16 colores y pcx a 256, pero no en escala de grises, agradezco a quien pueda colaborme. |
Respuesta: | Christian González Catalán |
Si deseas abrir un archivo que ya esta en escala de grises solo tienes que cargar la paleta utilizando por ejemplo el formato pcx que creo que es el más facil. Si lo que quieres es mostrar en grises uno que está en color es algo distinto, no lo he hecho nunca pero me imagino que es facil. Si necesitas ayuda escribeme nomás... |
Pregunta: | 3439 - COMANDOS DEL MODEM |
Autor: | Antonio Moyar López |
Tengo un modem externo y me gustaría saber como, a través de los comandos de modem, puedo colgar, marcar. Como el modem tiene microfono y altavoz necesito saber la forma de activarlos y desactivarlo. Estaria muy agradecido a esa mano amiga. Gracias |
Respuesta: | Pedro Pablo |
Yo solo sé como se marca. Hay que enviar al modem la siguiente orden: ATDT<nº teléfono> si marcas por tonos, o ATDP<nº teléfono> si marcas por pulsos. No hay que poner espacios entre ATP? y el número de teléfono. Espero que te sirva para algo. |
Pregunta: | 3449 - E-MAIL EN BUILDER C++ 1.0 |
Autor: | Francisco Becerra Pinos |
Por favor necesitaria un ejemplo de como leer correo electrónico . Los ejemplos de los libros que he leido no dan error al ejecutarse pero se desconectan y no leen el correo. Uso Builder C++ 1.0 y los componentes estandar. |
Respuesta: | Pedro Pablo |
Yo también he tenido problemas con esto. He estado haciendo pruebas para mirar los mensajes desde un programa en C++ Builder, pero tampoco lo he conseguido. Sin embargo, mi problema ha sido otro. Yo sí he conseguido conectarme al servidor, y mirar el número de mensajes. Mi problema es que cuando solicito cualquiera de ellos, el programa efectúa una operación no válida, y todo termina ahí :-?. Supongo que estás utilizando el componente TPOP. Si puedes, mandame alguno de los ejemplos de los que hablas, y los pruebo yo aquí, a ver si a mí también me fallan. Además, si quieres, te mando mi mini-programa. Mi dirección es [email protected] |
Pregunta: | 3522 - CREAR EJECUTABLE EN C++ IDE |
Autor: | JUAN JARAMILLO |
Cuando se compila un programa que incluye modo grafico en c++ crea un archivo ejecutable, pero ese ejecutable no corre en otra lugar si no estan las librerias de inicializacion de la tarjeta, en este caso aparece error en initgraph, la pregunta es como hago para generar un ejecutable(exe), que pueda ser corrido en donde no este instalado el c o en otra plataforma. |
Respuesta: | Daniel Azkona Coya |
Hola, ¿En que sistema operativo y con que compilador trabajas? Por lo que dices supongo que será en MsDOS y con TurboC o alguno parecido. Cuando usas modo grafico y luego quieres distribuir el programa, es necesario que al lado del ejecutable suministres las librerias gráficas del compilador. Otra forma de hacerlo es insertando, en el código fuente, rutinas en ASM que realicen las funciones graficas y de esta manera no necesitas mas que tu ejecutable. Si quieres más información, dimelo. |
Pregunta: | 3532 - YACC (COMPILADOR DE COMPILADORES) |
Autor: | German Cravero |
Donde Puedo encontrar manuales sobre YACC? |
Respuesta: | Cristian Prieto |
Mira, se que existe una direccion en internet en donde se encuentran los manuales o algo por el estilo en donde puedes encontrar algo sobre YACC, Bison o algo asi... en este momento no me la se porque estoy de viaje y cargo la portatil.... escribe a mi correo electronico y te la dare con gusto... |
Respuesta: | Irancho |
Mira no se si conoces el libro de aho, llamado compiladores: herramientas y conceptos de la editorial mc graw hill; alli podras encontrar una instrucciones de YACC |
Pregunta: | 3537 - MANEJO DE PUERTOS EN VISUAL C++6.0 |
Autor: | Maocast |
Quisiera saber el procedimiento detallado para controlar los puertos serial y paralelo desde VC++6.0 o VB6.0, gracias |
Respuesta: | Carlos Maldonado |
Si estas trabajando con V. C++ hay que incluir rutinas en ensamblador para poder leer o escribir datos al puerto.
Yo he utilizado vc++ para unicamente enviar datos al puerto paralelo. char salida; asm{ mov DX,378h or salida,01h; //0000 0001 mov AL,salida out DX,AL } Con esto envias el numero 1 al puerto de la impresora LPT, recuerda que debes escribir el numero en Hexadedimal. Espero y sea de utilidad, a mi me ha funcionado.Saludos |
Respuesta: | José Manuel Muélledes |
Los puertos en Win32 no son mas que ficheros por lo que puedes utilizar el API CreateFile (...) (mira la ayuda para los parámetros. Los nombres de los ficheros a abrir siguen la sintaxis //./COM<n> donde <n> es el numero del puerto. |
Respuesta: | Ana Lilia López Islas |
Existen las funciones outportb e inportb que permiten enviar y recibir informacion del puerto deseado. Su prototipo esta en dos.h y la sintaxis es: outportb(#puerto deseado, dato a enviar) |
Pregunta: | 3539 - COMUNICACIONES Y WINDOWS API-16BITS |
Autor: | Víctor Tapias |
Debo hacer un programa para comunicaciones por puerto serie en BORLAND C++. Este debe ser capaz de recibir y enviar cadenas de caracteres. El problema es que no se la forma de hacer que envíe la cadena entera de una sola vez, es decir, no de carácter en carácter (esto es fácil), si no toda de una vez. No se si esto será posible, igualmente, si no lo es me gustaría saber el porqué. También se que con las API de Windows (16-bits), en concreto la librería "windows.h", esto es posible, pero no tengo nada al respecto, así que si tuvierais o conocierais de algún manual al respecto, os agradecería que alguien me lo pasara, me facilitara su ubicación o simplemente, si es un libro, me diga el titulo y el autor, solo de las de 16-bits por favor. Gracias a todos y un saludo. |
Respuesta: | Richard Mac |
En el Borland 4.0 además de las librerías windows.h, estan las winsock.h con esta función: Description Send data on a connected socket. #include <winsock.h> int PASCAL FAR send ( SOCKET s, const char FAR * buf, int len, int flags ); s A descriptor identifying a connected socket. buf A buffer containing the data to be transmitted. len The length of the data in buf. flags Specifies the way in which the call is made. |
Pregunta: | 3550 - LIBRO SOBRE VISUAL C++ |
Autor: | uriel Rivera |
Estoy empezando a programar en visual c++, tengo conocimientos de pascal, clipper y foxpro, pero visual c++ es completamente nuevo para mi. Que libro, autor y de que editorial me recomiendan (que sea claro y con bastantes ejemplos) para poderlo comprar y consultarlo. gracias |
Respuesta: | Quique Marti |
Si tienes conocimientos de C/C++, un muy buen libro es "Programación avanzada con Visual C++ " de David J. Kruglinski, editorial McGraw-Hill, serie Microsoft Press. Si no los tienes, un consejo sería aprender un poco de C++ antes de aventurarte con este libro y con cualquier otro sobre Visual C++. |
|< << 12 13 14 15 16 17 18 19 20 21 22 >> >| |