C++算法accumulate()和adjacent_difference()

泛型算法通則:所有算法的前兩個參數都是一對iterators:[first,last],用來指出容器內一個範圍內的元素。每個算法的聲明中,都表現出它所需要的最低層次的iterator類型。

accumulate()    元素累加

例:

//創建動態數組

vector<int> CreateVector1()

{

    vector<int> VeInt;

    srand(time(0));

    for (int i = 2; i < 12; i++)

    {

        VeInt.push_back(rand() % 100);

    }

    return VeInt;

}

//元素累加

int Accumulate(vector<int> intvector)

{

    int num = 0;

    num = accumulate(intvector.begin(), intvector.end(),0);

    return num;

}

//輸出元素

void ShowVector(vector<int> VeInt)

{

  vector<int>::iterator showVeInt;

  for (showVeInt = VeInt.begin(); showVeInt != VeInt.end(); showVeInt++)

  {

      cout << *showVeInt << " ";

  }

  cout << endl;

}

 

//主函數

void main()

{

    vector<int> intArr = CreateVector1();

    ShowVector(intArr);

    cout << Accumulate(intArr) << endl;

}

   

泛型算法名稱

accumulate()

作用

將容器中的數值相加

參數

容器開頭,容器結尾,累加初始值

 

adjacent_difference()  相鄰元素的差額

 

// adjacent_difference()方法

void Adjacent_difference(vector<int> &intvector)

{

    adjacent_difference(intvector.begin(), intvector.end(), intvector.begin());

}

//主方法

void main()

{

    vector<int> intArr = CreateVector1();

    ShowVector(intArr);

    Adjacent_difference(intArr);//相鄰元素差額

    ShowVector(intArr);

}

 

泛型算法名稱

adjacent_difference()

作用

將容器中的後一個減去前一個獲得差值,放置到另一個容器中,容器可以是本身

參數

容器開頭,容器結尾,容器

 

只是最簡單的例子。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章