« first day (2774 days earlier)      last day (338 days later) » 

6:16 AM
Egun on
 
 
11 hours later…
5:28 PM
@MauricioContreras yo esperaria a ver si arranca...
 
 
5 hours later…
10:01 PM
Holas
Alguien tiene de porque al ejecutar un código de c++ en mi máquina windows pero si lo prueba en cualquier compilador online me da el resultado esperado
 
 
1 hour later…
11:09 PM
0
Q: Cargar datos de un documento txt

DwogurNecesito que cargue los datos de un archivo, en un tipo struct. El archivo de texto es de este estilo: 4 OCA 5 POSADA 13 PUENTE1 17 OCA 19 DADO1 20 CARCEL 21 OCA 24 LABERINTO 27 PUENTE2 29 OCA 32 OCA 35 CALAVERA 36 POZO 38 OCA 42 OCA 43 DADO2 44 OCA 47 OCA 50 OCA 53 OCA 58 OCA 63 OCA 0 2 12 0 1 3...

Otro que va avanzando en base a preguntas
@Christian cómo? Qué compilador usas?
 
Buenas
 
11:27 PM
@Mateo El que me da visual studio
Creo que era g++
 
11:45 PM
@Christian la carga de trabajo de Visual Studio trae MSVC
Bueno, y tienes algún ejemplo?
 
Pues sip
 
También podría ser cosa del sistema operativo
 
Mi tabla hash
#include <iostream>
#include <fstream>
#include <string>
#include <algorithm>
#include <functional>
#include <vector>
using namespace std;

template <class K, class V>
class HashEntidad {
private:
    K key;
    V value;
public:
    HashEntidad(K key, V value) {
        this->key = key;
        this->value = value;
    }
    K getKey() { return key; }
    V getValue() { return value; }
};

template<class K, class V>
class HashTabla {
private:
	HashEntidad<K, V>** tabla;
	int numElementos;
	int TABLE_SIZE;
 
Recuerda que los compiladores online podrían estar corriendo en Linux
 
@Mateo Ando pensando que es eso... Lo probé en otra pc donde tengo ubunto y si funciona
 
11:47 PM
Ok, cuál es el problema, no compila o no obtienes el mismo resultado?
 
No obtengo el mismo resultad
Se insertan los valores, pero al buscar me dice que no hay
 
Ahora lo pruebo
 
Puse unos cout para ver cual era el hash y al verlo pues el hash no concuerda
@Mateo Vale, gracias
 
@Christian versión de C++?
 
Visual lo corre con C++14
 
11:51 PM
Ese es el mismo que tengo por defecto.
Esto es lo que obtengo:

hash al insertar: 7
hash al insertar: 0
hash al insertar: 5
hash al insertar: 6
hash al insertar: 8
hash al insertar: 4
Clave: Clave2, Valor: 20, hash: 8
1
2
3
Clave: Clave6, Valor: 60, hash: 7
Clave: Clave3, Valor: 30, hash: 9
Clave: Clave4, Valor: 40, hash: 3
Clave: Clave1, Valor: 10, hash: 4
Clave: Clave5, Valor: 50, hash: 4
9
hash al buscar: 6
indice encontrado: -1
 
Sip, ahí dice -1 lo que significa que no se encontró
Debería de dar el ínidce de Clave2
Lo de aquí corresponde a la tabla hash, donde hay números significa que está vacío

Clave: Clave2, Valor: 20, hash: 8
1
2
3
Clave: Clave6, Valor: 60, hash: 7
Clave: Clave3, Valor: 30, hash: 9
Clave: Clave4, Valor: 40, hash: 3
Clave: Clave1, Valor: 10, hash: 4
Clave: Clave5, Valor: 50, hash: 4
9
Como ves la Clave2 se inserta con un hash 7, al imprimir dice que su hash es 8 y al buscarlo su hash es 6
 
Y qué salida obtienes tu?
 
hash al insertar: 5
hash al insertar: 2
hash al insertar: 3
hash al insertar: 8
hash al insertar: 9
hash al insertar: 6
0
1
Clave: Clave2, Valor: 20, hash: 0
Clave: Clave3, Valor: 30, hash: 1
4
Clave: Clave1, Valor: 10, hash: 9
Clave: Clave6, Valor: 60, hash: 6
7
Clave: Clave4, Valor: 40, hash: 4
Clave: Clave5, Valor: 50, hash: 5
hash al buscar: 2
indice encontrado: 2
Esto
 
Ah siempre varian los hash?
 
Sip
 
11:56 PM
Y cómo los haces variar?
 
La verdad ni idea
Creo que es por la función hashear
 
No debería ser determinista?
 
Yo uso reinterpet_cast para poder hashear cualquier objeto
Luego solo unas operaciones a bit
 
Posiblemente tengas memoria sin inicializar
 
		for (int i = 0; i < tamBytesKey; i++) {
			hash ^= data[i];
		}
		return hash % modulo;
@Mateo Todo se inicializa en nullptr al inicio
Puedes ver el código funcionando aquí: replit.com/@nakato156/TablaHash?v=1
 

« first day (2774 days earlier)      last day (338 days later) »