5

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

4

2 に答える 2