2016-12-04 9 views
0

と最大私はできる限りのstdライブラリを使用しようとしていると私はSTDとの質問があります::最大のstd ::動的配列

#include <algorithm> 

void foo(size_t elem) 
{ 
    auto testArray = new double[elem]; 
    for(int i = 0; i < elem; ++i) 
    { 
    testArray[i] = i; 
    } 

    auto maxElem = std::max(testArray, testArray + (elem - 1)); 
    delete[] testArray; 
} 

に合格するための最良の方法は何ですかここでstd :: max関数への引数は?私は、この配列をテンプレートを使ったイテレータのように振る舞わせることができることを期待していました。

+1

「testArray +(elem-1)」ではなく、 'testArray + elem'でなければなりません。 – timrau

+0

+ elemで試してみましたが、予期しない動作がありました。それは毎回最後の要素を選んでいましたが、最大ではありませんでしたが、それは最も否定的でした。 – CodeSlapper

答えて

3

max_element()である必要があります。max()ではありません。

auto maxElem = *(std::max_element(testArray, testArray + elem));