Я хочу добавить очень простую функцию сопоставления с образцом в некоторый код C ++, например у меня есть map<string,int>
и хочу написать метод sumMatchingEntries(string pattern)
который будет суммировать все значения, где ключ соответствует шаблону ввода. Шаблон будет простым, например единственные подстановочные знаки будут *
и, возможно, ?
,
Я полагаю, что boost имеет поддержку регулярных выражений, но это кажется немного излишним, так есть ли какие-либо другие стандартные библиотечные функции, которые можно использовать?
Обратите внимание, что я использую VC ++ 2K8, так что никаких функций C ++ 03/11 нет, но повышение в порядке. Если бы регулярное выражение было лучшим, пример был бы отличным.
VC ++ 2008 включает регулярные выражения TR1 в качестве пакета функций: http://www.codeproject.com/Articles/26285/Quick-Start-for-C-TR1-Regular-Expressions. Переизобретать колесо, вероятно, не стоит.
Других решений пока нет …