С регулярным выражением , если вам нужен простой способ. В противном случае используйте FLEX / BISON .
Вы также можете использовать библиотеку синтаксического анализа URI
Посмотрите Loki:: AssocVector и/или hash_map (большинство реализаций STL имеет этого).
Можно использовать станд.:: tr1:: unordered_map, который уже присутствует в большинстве реализаций STL и является частью C++ 0x стандарт.
Вот, это - текущая подпись:
template <class Key,
class T,
class Hash = std::tr1::hash<Key>,
class Pred = std::equal_to<Key>,
class Alloc = std::allocator<std::pair<const Key, T> > >
class unordered_map;
Если Ваш ключ является простым типом, который может быть очень быстро сравнен, и у Вас есть не больше, чем несколько тысяч записей, у Вас могла быть лучшая производительность, просто вставляя Ваших пар std::vector
и итерация для нахождения значения.