Implements Zero-Copy String Views onto Contiguous Memory, resolves #3265.
- http://www.boost.org/doc/libs/1_61_0/libs/utility/doc/html/string_ref.html - http://en.cppreference.com/w/cpp/string/basic_string_view
This commit is contained in:
@@ -1,7 +1,9 @@
|
||||
#include "extractor/suffix_table.hpp"
|
||||
|
||||
#include "extractor/scripting_environment.hpp"
|
||||
|
||||
#include <algorithm>
|
||||
#include <iterator>
|
||||
|
||||
#include <boost/algorithm/string.hpp>
|
||||
|
||||
namespace osrm
|
||||
@@ -11,13 +13,22 @@ namespace extractor
|
||||
|
||||
SuffixTable::SuffixTable(ScriptingEnvironment &scripting_environment)
|
||||
{
|
||||
std::vector<std::string> suffixes_vector = scripting_environment.GetNameSuffixList();
|
||||
for (auto &suffix : suffixes_vector)
|
||||
suffixes = scripting_environment.GetNameSuffixList();
|
||||
|
||||
for (auto &suffix : suffixes)
|
||||
boost::algorithm::to_lower(suffix);
|
||||
suffix_set.insert(std::begin(suffixes_vector), std::end(suffixes_vector));
|
||||
|
||||
auto into = std::inserter(suffix_set, end(suffix_set));
|
||||
auto to_view = [](const auto &s) { return util::StringView{s}; };
|
||||
std::transform(begin(suffixes), end(suffixes), into, to_view);
|
||||
}
|
||||
|
||||
bool SuffixTable::isSuffix(const std::string &possible_suffix) const
|
||||
{
|
||||
return isSuffix(util::StringView{possible_suffix});
|
||||
}
|
||||
|
||||
bool SuffixTable::isSuffix(util::StringView possible_suffix) const
|
||||
{
|
||||
return suffix_set.count(possible_suffix) > 0;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user