2016-03-20 8 views
-1

C++で次の置換アルゴリズムを書いています。イテレータの接頭辞の最大値を下げる

forとwhileを使用することは禁じられています(イテレータのみですべてを行うことになっています)。

アルゴリズムの最初のステップは、最大増加しない接尾辞を取得することです。イテレータだけを使って、条件によってベクトル内の何かを見つける方法を理解していないので、私は驚いています。

+1

std :: find、std :: for_eachを気にしてください。 –

答えて

1

std::findまたはstd::for_eachは、algorithmで定義されています。例:C++14を使用して:

#include <iostream> 
#include <vector> 
#include <algorithm> 

int main() 
{ 
    std::vector<int> v{0,1,2,3,5,7}; 

    auto f = std::find(std::begin(v), std::end(v), 5); 
    if (f != std::end(v)) { 
     std::cout << "found element 5" << std::endl; 
    } 

    std::for_each(
     std::begin(v), 
     std::end(v), 
     [](int n) { 
      if (n == 5) { 
       std::cout << "found element 5" << std::endl; 
      } 
     } 
    ); 
}