Возвращение пустого вектора строк, если ключ не найден

Я знаю, что это очень плохое представление, поэтому другие предложения о том, как это сделать эффективно, будут хорошо получены.

Вот вещь. У меня есть карта <1198498] > , я хочу искать ключ и вернуть соответствующее значение (вектор строк в этом случае). Причина, по которой я настаиваю на возвращении (а не просто итерации), мне нужно искать значения, возвращаемые в некоторых других векторах.

Примером сделает это понятно:

Input:

key1 ---> {2,3,4}
key2 ---> {1}
key3 ---> {2,12,11,9}

для 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????


}

1) Как я должен вернуть пустой вектор в случае, ключевой ключ не найден?

2) Какой лучший способ реализовать это ?

Я надеюсь, что вопрос ясен.

Править: Как я написал вопрос, я думал, почему не вернуть итератор? Есть ли люди, так что дают свое одобрение для этой идеи?

5
задан Anon 16 September 2011 в 01:13
поделиться