将参数分配给一个变量c ++

时间:2014-05-21 13:34:13

标签: c++

我们的项目是为我们想要的任何DS的事件制作搜索引擎。搜索引擎将具有事件的日期和事件的描述。我们小组选择使用散列来制作它,如果有任何碰撞,我们通过将其插入BST来解决它。问题是当我插入值DATE和DESCRIPTION时,我想使节点的值既是日期又是desc。所以我写了这个,但显然它不会起作用。你知道我怎样才能将参数值传递给一个变量(节点)??

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

2 个答案:

答案 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) { //...

但是如果不了解其余的代码,很难给出具体的答案。