2

範囲内のすべての要素が等しいかどうかを確認するには、どのフォボス アルゴリズムを使用すればよいですか? 私が調べたstd.algorithmところ、最も近いものは見つかりましたがequal、引数として2つの範囲が必要です。reduceまた、この問題を解決するために申請する方法が見つかりません。

4

2 に答える 2

4

1 つのオプションは、canFind を使用することです。

import std.algorithm;
import std.range;

void main() {
    int[] foo = [1,1,2];
    if(!foo.empty) {
      if(!canFind!"a != b"(foo, foo.front))
           // they are equal
      else
            // not equal
    } else { /* nothing to compare against */ }
}

ここでのロジックは、それらがすべて等しい場合、最初のアイテムと等しくないアイテムを見つけることができないはずです。

アンドレイの答えには、さらにいくつかのオプションがあります!

于 2013-10-08T21:31:42.430 に答える