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()

作用

将容器中的后一个减去前一个获得差值,放置到另一个容器中,容器可以是本身

参数

容器开头,容器结尾,容器

 

只是最简单的例子。

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