mirror of
https://github.com/KeqingMoe/argparse.git
synced 2025-07-04 15:14:39 +00:00
Modify ArgumentParser::get_length_of_longest_argument method run in O(1) space
Closes #124 Reported-by: Aayush Anand <aaayushanand5@gmail.com> Signed-off-by: Sean Robinson <sean.robinson@scottsdalecc.edu>
This commit is contained in:
parent
0d868fdca8
commit
063d708c3e
@ -1149,14 +1149,11 @@ private:
|
|||||||
if (m_argument_map.empty()) {
|
if (m_argument_map.empty()) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
std::vector<std::size_t> argument_lengths(m_argument_map.size());
|
std::size_t max_size = 0;
|
||||||
std::transform(std::begin(m_argument_map), std::end(m_argument_map),
|
for (const auto& [unused, argument] : m_argument_map) {
|
||||||
std::begin(argument_lengths), [](const auto &pair) {
|
max_size = std::max(max_size, argument->get_arguments_length());
|
||||||
const auto &argument = pair.second;
|
}
|
||||||
return argument->get_arguments_length();
|
return max_size;
|
||||||
});
|
|
||||||
return *std::max_element(std::begin(argument_lengths),
|
|
||||||
std::end(argument_lengths));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
using list_iterator = std::list<Argument>::iterator;
|
using list_iterator = std::list<Argument>::iterator;
|
||||||
|
Loading…
Reference in New Issue
Block a user