0

double 値の std::vector があります。次に、連続する 2 つの要素を処理するために、それらが特定の距離内にあるかどうかを知る必要があります。以前に でベクトルをソートしましたstd::sortこれらの要素とラムダ式 (c++11) を次のよう
に決定するソリューションについて考えました。std::find_if

std::vector<std::vector<double>::iterator> foundElements;
std::vector<double>::iterator foundElement;
while (foundElement != gradients.end())
{
    foundElement = std::find_if(gradients.begin(), gradients.end(),
                 [] (double grad)->bool{
        return ...
    });
    foundElements.push_back(foundElement);
}

しかし、述語は実際に何を返すべきなのでしょうか? 計画は、イテレータのベクトルを使用して、後でベクトルを変更することです。
私はこのアプローチで正しい軌道に乗っていますか、それとも複雑すぎる/不可能ですか? おそらくより実用的な他の解決策は何ですか?

std::adjacent_find編集:ある回答者が提案したように、関数の後に行くと思います。

4

2 に答える 2

1

についてお読みくださいstd::adjacent_find

于 2013-08-26T21:57:51.957 に答える