我有一个用2个迭代器定义的字符串。我想检查,如果它以一些字符串结束。 现在我的代码看起来像
algorithm::ends_with(string(begin,end),"format(");
有没有办法在不构造字符串的情况下执行此函数?像
这样的东西algorithm::ends_with(begin,end,"format(");
答案 0 :(得分:3)
是
std::string s = "something";
bool b = boost::algorithm::ends_with( &s[0], "g"); // true
Iterator也可用于构建范围:
#include <boost/range.hpp>
std::string s = "somet0hing";
std::string::iterator it = s.begin();
bool b = boost::algorithm::ends_with(
boost::make_iterator_range( it, s.end()), "g"); // true
或:
std::string s = "somet0hing";
std::string::iterator it = s.begin();
bool b = boost::algorithm::ends_with( &(*it), "g"); // true