2017-08-29 8 views
-2
int max=0;int answer=0; 
    max = max_element(ar.begin(),ar.end()); 
    answer = find(ar.begin(), ar.end(), max); 
    return answer; 

私が必要とするのは、ベクトルを調べてその最大値を取り出し、ベクトルに最大値がいくつあるかを戻すことです。前にこれらの関数を使用しようとしたIveは、うまくいくはずだがそうではないようだ。ベクトルから整数への返答を返すことができない

エラー: が割り当て

+2

すべてのコードを投稿してください。 –

+0

'find'は何を返しますか?それは 'int'ですか?もしそうなら、それは何の "何くらい"に対応していますか? – juanchopanza

+0

*とベクトル内にある最大値の数を返します* - 間違ったアルゴリズム関数を使用したようです。 'find'の代わりに' std :: count'を使用した場合、あなたのコードは期待通りに動作します。 – PaulMcKenzie

答えて

1

findで「INT」に「:: __ normal_iterator> __gnu_cxx」を変換することはできません、むしろあなたが思えるものですインデックス、より、提供beginendイテレータと一致するイテレータ型を返します。期待している。

auto find_result = find(ar.begin(), ar.end(), max); 
answer = distance(ar.begin(), find_result); 
関連する問題