2014-05-21 4 views
-2

Notre projet consiste à faire un moteur de recherche pour les événements avec n'importe quelle DS que nous voulons. Le moteur de recherche aura la date de l'événement, et une description de l'événement. Notre groupe a choisi de le faire en utilisant le hachage et s'il y a une collision, nous le résolvons en l'insérant dans un BST. Le problème est quand j'insère les valeurs DATE et DESCRIPTION, je veux faire la valeur du noeud à la fois la date et la desc. donc j'ai écrit ceci, mais évidemment ça ne marchera pas. Savez-vous comment puis-je passer la valeur des paramètres à une variable (le noeud) ??assigner des paramètres à une variable C++

void insert2(int date, string desc){ 
    .......... 
    newNode->setVal(date + desc); //Problem 
    .........} 
+1

À quoi ressemble un nœud dans votre arborescence? – HAL

+1

En plus du fait que vous essayez d'ajouter une chaîne à un int, je n'ai pas vraiment compris votre problème. Veuillez noter que C++! = PHP. Veuillez décrire le problème clairement et publier un [SSCE] (http://sscce.org/). –

+1

La réponse dépend plus ou moins du paramètre 'setVal'. (Ou est-ce une partie de la question aussi?) – Appleshell

Répondre

2

Il semble que vous souhaitiez combiner date et description en un seul objet.

A. Vous pouvez créer une structure ou une classe pour combiner vos données. http://www.cplusplus.com/doc/tutorial/structures/

struct SearchEngineEntry{ 
    int date; 
    string desc; 
}; 


void insert2(int date, string desc){ 
    //... 
    SearchEngineEntry entry; 
    entry.date = date; 
    entry.desc = desc; 
    newNode->setVal(SearchEngineEntry{entry); //Problem 
    //...  
} 

B. Vous pouvez utiliser une construction dans la structure de données http://www.cplusplus.com/reference/tuple/tuple/

void insert2(int date, string desc){ 
    //... 
    std::tuple<int,string> entry(date,desc); 
    newNode->setVal(entry); //Problem 
    //... 
} 
1

Une troisième solution serait de convertir l'int en une chaîne pour la concaténation.

newNode->setVal(std::to_string(date) + desc); 

Vous pouvez également modifier l'implémentation de noeud pour accepter deux valeurs.

Node::setVal(int date, std::string desc) { //... 

Mais sans connaître le reste de votre code, il est difficile de donner une réponse précise.

Questions connexes