Boost :: string_ref查找算法

时间:2016-09-28 15:28:29

标签: c++ string boost

我在解决boost库string_ref查找函数的作用时遇到了一些问题。我写了以下程序

int main(int argc, char **argv) {
    boost::string_ref ref = string("<a>\n1234567\n</a>\n<a>");
    cout << ref.find_first_of("<a>") << endl; // output 12
    cout << ref.find("<a>") << endl; // output 17
}

我不明白为什么找到给我的模式的最后一次出现,find_last_of甚至根本没有意义!有人可以给我一些帮助吗?

1 个答案:

答案 0 :(得分:3)

来自docs

  

Boost.StringRef是Jeffrey Yaskin的N3442的一个实现:string_ref:一个字符串的非拥有引用

boost::string_ref ref = string("<a>\n1234567\n</a>\n<a>"); 没有任何东西,只是引用它。所以当你写:

string

临时future.get();在行尾被销毁,现在你有一个悬空引用。其他一切都是UB。