diff options
| author | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2010-02-28 16:04:52 +0000 |
|---|---|---|
| committer | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2010-02-28 16:04:52 +0000 |
| commit | 72e475dfdeaa4a87dff0eef994e7814e94c40363 (patch) | |
| tree | 94a84e90c14876db223e4a733f651fe0b034f5e9 /src/OptionParser.cc | |
| parent | c342bde9627b434effbc0cd10b817670d1da0923 (diff) | |
2010-03-01 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Avoid to calculate end() iterator in each loop. std::deque is
particularly slow. Make sure that recalculate end iterator if
element is erased during loop.
Diffstat (limited to 'src/OptionParser.cc')
| -rw-r--r-- | src/OptionParser.cc | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/src/OptionParser.cc b/src/OptionParser.cc index 7e8b56ac..5508dc8a 100644 --- a/src/OptionParser.cc +++ b/src/OptionParser.cc @@ -209,8 +209,9 @@ void OptionParser::setOptionHandlers (const std::vector<SharedHandle<OptionHandler> >& optionHandlers) { _optionHandlers = optionHandlers; - for(std::vector<SharedHandle<OptionHandler> >::iterator i = - _optionHandlers.begin(); i != _optionHandlers.end(); ++i) { + for(std::vector<SharedHandle<OptionHandler> >::const_iterator i = + _optionHandlers.begin(), eoi = _optionHandlers.end(); + i != eoi; ++i) { (*i)->setOptionID(++_idCounter); } std::sort(_optionHandlers.begin(), _optionHandlers.end(), @@ -230,7 +231,8 @@ void OptionParser::addOptionHandler void OptionParser::parseDefaultValues(Option& option) const { for(std::vector<SharedHandle<OptionHandler> >::const_iterator i = - _optionHandlers.begin(); i != _optionHandlers.end(); ++i) { + _optionHandlers.begin(), eoi = _optionHandlers.end(); + i != eoi; ++i) { if(!(*i)->getDefaultValue().empty()) { (*i)->parse(option, (*i)->getDefaultValue()); } |
