STL入门之处理相反数

来源:互联网 发布:办公室暧昧 知乎 编辑:程序博客网 时间:2024/06/06 16:17

STL的基本组件

  • 容器(container)
  • 迭代器(iterator)
  • 函数对象(function object)
  • 算法(algorithms)


在这里使用了  transform 函数实现了相反数的处理

其中:


transform现代码如下:


template <class InputIterator, class OutputIterator, class UnaryFunction>OutputIterator transform(InputIterator first, InputIterator last, OutputIterator result, UnaryFunction op) {    for (;first != last; ++first, ++result)        *result = op(*first);    return result;}

transform算法顺序遍历first和last两个迭代器所指向的元素;


将每个元素的值作为函数对象op的参数;


将op的返回值通过迭代器result顺序输出;


遍历完成后result迭代器指向的是输出的最后一个元素的下一个位置,transform会将该迭代器返回



完全体如下:

#include <iostream>#include <vector>#include <iterator>#include <algorithm>#include <functional>using namespace std ;int main(){const int N = 5;vector<int>s(N);for(int i  = 0 ; i < N;i++){cin>>s[i];}transform(s.begin(),s.end(),ostream_iterator<int>(cout," "),negate<int>());cout<<endl;return 0 ;}




0 0
原创粉丝点击