• Martes 12 de Noviembre de 2024, 20:48

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - Phas

Páginas: [1]
1
C/C++ / Por qué no es portable este codigo?
« en: Martes 16 de Marzo de 2010, 13:04 »
Por qué no es portable?

Código: C++
  1. #include <iostream>
  2. #include <iterator>
  3. #include <vector>
  4. #include <algorithm>
  5.  
  6. using namespace std;
  7. // Leer enteros por entrada y llevarlos a un vector e imprimir la salida.
  8.  
  9. int main ()
  10. {
  11.      cout << "Nota: Si introduce menos de 10 numeros, los restantes tendran valor cero";
  12.      cout << " hasta completar dicho tamanio." << endl;
  13.      cout << endl << "Vaya introduciendo los numeros para un vector de tamanio 10.";
  14.      cout << "Cuando se desee dejar de introducir numeros, presione <Ctrl+Z>." << endl << endl;
  15.      vector<int> v(10);
  16.      istream_iterator<int> in (cin); // Iterador de entrada
  17.      ostream_iterator<int> out(cout, " "); // Iterador de salida, indica como quieres separar
  18.      
  19.      // El copy tiene 3 parametros, los dos primeros dos ITERADORES de la primera
  20.      // estructura (origen) y otro ITERADOR para la estructura destino que nos dice
  21.      // desde donde queremos empezar a copiar en la estructura destino
  22.      copy (in, istream_iterator<int>(), v.begin());
  23.      // PRimer iterador, la entrada cin, segundo la marca de fin de fichero EOF,
  24.      // y tercero desde donde queremos copiar
  25.      cout << endl << endl << "El vector creado con el algoritmo generico copy es:" << endl << endl << "( ";
  26.      copy (v.begin(), v.end(), out);
  27.      cout << ")" << endl << endl;
  28.      
  29.      system("pause");
  30.      return 0;
  31. }
  32.  

2
C/C++ / Re: Problema con proyecto de arboles (Imprime direccioens de mem
« en: Miércoles 10 de Marzo de 2010, 20:13 »
Eso lo hice en el segundo bloque de código que puse, si te das cuenta, pero es que me da un error de compilación de no se que de 'candidates'. Y por más vueltas que le doy no tengo ni idea de qué puede ser :(

Y sí, es un puntero al objeto ya que el árbol t es  un nTreeLNode <T> *.

3
C/C++ / Problema con proyecto de arboles (Imprime direccioens de mem
« en: Miércoles 10 de Marzo de 2010, 00:55 »
Hola, tengo un proyecto para una practica de la universidad de manejar arboles. LA cuestion es la siguiente: cuando intento mostrar el arbol por pantalla sobrecargué los dos operadores de salida como sigue

Código: Text
  1. ostream & operator << (ostream & os, const nTreeLNode<int> * t)
  2. {
  3.         os << t;
  4.     return os;
  5. }
  6.  
  7. ostream & operator << (ostream & os, const nTreeLNode<int> & t)
  8. {
  9.     if (t.isLeaf(t.root())) // El arbol solo es un nodo raiz
  10.     {
  11.         os << "Arbol (" << t.label(t.root()) << ")";
  12.         return os;
  13.     }
  14.    
  15.     LNode<int> * hijo = t.leftMostChild (t.root());
  16.     os << " Arbol (" << t.label(t.root());
  17.     while (hijo)
  18.     {
  19.         os << ", " << t.subTree(hijo);
  20.         hijo = t.rightSibling (hijo);
  21.     }
  22.     os << ")";
  23.     return os;
  24. }
  25.  


La cuestion es que cuando imprimo por pantalla, me salen direcciones de memoria y no el árbol. Además, yo lo había hecho de esta forma (modificacion en la linea 3):

Código: Text
  1. ostream & operator << (ostream & os, const nTreeLNode<int> * t)
  2. {
  3.         os << *t;
  4.     return os;
  5. }
  6.  
  7. ostream & operator << (ostream & os, const nTreeLNode<int> & t)
  8. {
  9.     if (t.isLeaf(t.root())) // El arbol solo es un nodo raiz
  10.     {
  11.         os << "Arbol (" << t.label(t.root()) << ")";
  12.         return os;
  13.     }
  14.    
  15.     LNode<int> * hijo = t.leftMostChild (t.root());
  16.     os << " Arbol (" << t.label(t.root());
  17.     while (hijo)
  18.     {
  19.         os << ", " << t.subTree(hijo);
  20.         hijo = t.rightSibling (hijo);
  21.     }
  22.     os << ")";
  23.     return os;
  24. }
  25.  
  26.  
Pero poniendo el * delante del arbol linea 3 no me compila mostrandome un error de candidatos o no seq. La verdad es que estoy algo bloqueao. Me podeis echar una mano? Si necesitais ver código de algun archivo o algo decirlo.

Muchas gracias

Páginas: [1]