ベクトルの前半を反復(読み込み)し、最初の半分に応じて後半の構造を変更する慣用方法は何ですか?これは非常に抽象的ですが、いくつかのアルゴリズムがこの問題に沸騰する可能性があります。私はラストにこの単純化C++の例を書きたい:配列の半分をイディオム的に反復し、もう一方の構造を変更する方法はありますか?
for (var i = 0; i < vec.length; i++) {
for (var j = i + 1 ; j < vec.length; j++) {
if (f(vec[i], vec[j])) {
vec.splice(j, 1);
j--;
}
}
}
例と同じことをする慣用的なアプローチを求めていますか?あなたはそれ以外の明確な問題を提示していないようです。ちなみに、私はあなたに無関係のコメントを将来問題から外すことをお勧めします。 –
私は配列の一部を読み込み、同時に配列の他の部分を構造的に変更したいと思います。だから、与えられた瞬間、配列の0..k部分は変更されずに残っているが、k..lenは任意に再構築することができる(例えばランダムな方法で)。私は、現実世界の明確な例を与えることはできません。しかし、私はそのような問題が起こるかもしれないという直感を持っています。だから可能な限り一般的なものにしよう。そして最も重要なことは、借用チェッカーのないこの問題は、C言語のような明確な解決策を持っていることです。 –
問題は、その問題への影響を理解することなしにあまりにも一般的にしてはいけないということです。特に、ベクターに要素を追加したり削除したりできますか?それは問題をはるかに困難にします。特定の問題に絞っておけば、本当に役に立つかもしれません。 –