今年の基調講演で、Ging 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>*
です。標準ライブラリにこのようなものはありますか?私はそれを探しましたが、見つかりませんでした。標準にない場合、これをどのように実装できますか?