繁体   English   中英

返回False或Value C ++

[英]Return False or Value C++

我有一个avl树,其中包含包含字符串标识符的对象。

我有一个用户输入一个字符串,然后我想解析该树以查看该用户字符串是否与树标识符中的任何对象匹配。 如果没有具有与用户字符串匹配的标识符的对象,我想创建一个将标识符设置为用户字符串的对象。 如果带有标识符的对象确实与用户输入匹配,我想将对象返回给用户。 目前,我有两个函数,如果树中已经存在该对象,则返回一个布尔值;如果树中已经存在该对象,则将一个返回对象到控制台。 有没有办法将这两个步骤组合为一个功能? 我正在寻找类似的东西:

if(...) // the item exists in the tree
{
    //return the object
}
else
{
    avltreeObject.insert(user_string);
}

使返回类型为std::pair<bool, Object>

if(/*the item exists in the tree*/)
{
   return std::make_pair(false, object);
}
else
{
   avltreeObject.insert(user_string);
   return std::make_pair(true, object);
}

像这样:

Object obj = avltreeObject.retrieve(user_string);
if( object != 0 ){
    return obj;
} else {
    avltreeObject.insert(user_string);
    return avltreeObject.retrieve(user_string);
}

insert函数可能会返回新创建的对象,因此可以对其进行改进。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM