相关疑难解决方法(0)

如果未找到密钥,则返回空字符串向量

我知道这是一个非常糟糕的主意,所以有关如何有效地做到这一点的其他建议将会受到好评.

这就是事情.我有map<string,vector<string> >,我想搜索一个键并返回其相应的值(在这种情况下字符串的向量).我坚持返回(而不是仅仅迭代)的原因是我需要搜索其他向量中返回的值.

一个例子可以说明这一点:

Input:

key1 ---> {2,3,4}
key2 ---> {1}
key3 ---> {2,12,11,9}
Run Code Online (Sandbox Code Playgroud)

对于key1作为输入,应返回值为2,3,4的向量.现在需要在其他字符串向量中搜索这些2,3,4值.最有效的方法是什么?

我试过这样的事情:

vector<string> returnEdges(string key)
{
    for (map<string, vector<string> >::iterator it=outgoing.begin();
    it!=outgoing.end();++it)
    {
        if (key.compare((*it).first)==0)
        {
            return (*it).second;
        }
    }


    //return string<;//what should I return here????


}
Run Code Online (Sandbox Code Playgroud)

1)如果找不到密钥,我应该如何返回空向量?

2)实现这个的最佳方法是什么?

我希望这个问题很清楚.

编辑:当我写这个问题时,我想为什么不返回迭代器?SO的人是否批准了这个想法?

c++ stl vector return-value stdvector

5
推荐指数
1
解决办法
8644
查看次数

标签 统计

c++ ×1

return-value ×1

stdvector ×1

stl ×1

vector ×1