在今年 Going Native The Essence of C++(转至 40:30)的主题演讲中,Bjarne Stroustrup 给出了以下代码示例:
template<typename C, typename V>
vector<Value_type<C>*> find_all(C& cont, V v)
{
vector<Value_type<C>*> res;
for (auto& x : cont)
if (x == v)
res.push_back(&x)
return res;
}
此函数用于查找容器中所有出现的值并返回指向找到的元素的指针。视频中的示例:
string m{"Mary had a little lamb"};
for (const auto p: find_all(m,'a')) // p is a char*
if (*p != 'a')
cerr << "string bug!\n";
我的问题是关于Value_Type<C>*
. 标准库中有这样的东西吗?我寻找它并没有找到它。如果它不在标准中,如何实现?