我们的项目是为我们想要的任何DS的事件制作搜索引擎。搜索引擎将具有事件的日期和事件的描述。我们小组选择使用散列来制作它,如果有任何碰撞,我们通过将其插入BST来解决它。问题是当我插入值DATE和DESCRIPTION时,我想使节点的值既是日期又是desc。所以我写了这个,但显然它不会起作用。你知道我怎样才能将参数值传递给一个变量(节点)??
void insert2(int date, string desc){
..........
newNode->setVal(date + desc); //Problem
.........}
答案 0 :(得分:2)
听起来你想将日期和描述组合成一个对象。
一个。 您可以创建结构或类来组合数据。 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中。您可以使用内置数据结构 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 :(得分:1)
第三种解决方案是将int转换为字符串以进行连接。
newNode->setVal(std::to_string(date) + desc);
您还可以将节点实现更改为接受两个值。
Node::setVal(int date, std::string desc) { //...
但是如果不了解其余的代码,很难给出具体的答案。