transform详解

1.简介

  该算法用于实行容器元素的变换操作。有如下两个使用原型,一个将迭代器区间[first,last)中元素,执行一元函数对象op操作,交换后的结果放在[result,result+(last-first))区间中。另一个将迭代器区间[first1,last1)的元素*i,依次与[first2,first2+(last-first))的元素*j,执行二元函数操作binary_op(*i,*j),交换结果放在[result,result+(last1-first1))

2.函数原型

1 template < class InputIterator, class OutputIterator, class UnaryOperator >
2   OutputIterator transform ( InputIterator first1, InputIterator last1,
3                              OutputIterator result, UnaryOperator op );
4
5 template < class InputIterator1, class InputIterator2,
6            class OutputIterator, class BinaryOperator >
7   OutputIterator transform ( InputIterator1 first1, InputIterator1 last1,
8                              InputIterator2 first2, OutputIterator result,
9                              BinaryOperator binary_op );

3.参数说明

first1, last1:指出要进行元素变换的第一个迭代器区间 [first1,last1)。 
first2:指出要进行元素变换的第二个迭代器区间首个元素的迭代器位置,该区间的元素个数第一个区间相等。 
result:指出变换后的结果存放的迭代器区间的首个元素的迭代器位置
op:用一元函数对象op作为参数,执行其后返回一个结果值。它可以是一个函数或对象内的类重载operator()。 
binary_op:用二元函数对象binary_op作为参数,执行其后返回一个结果值。它可以是一个函数或对象内的类重载operator()。

4.例子

 1 #include <iostream>
 2 #include <algorithm>
 3 #include <vector>
 4 using namespace std;
 5
 6 int op_increase (int i) { return ++i; }
 7 int op_sum (int i, int j) { return i+j; }
 8
 9 int main () {
10   vector<int> first;
11   vector<int> second;
12   vector<int>::iterator it;
13
14   // set some values:
15   for (int i=1; i<6; i++) first.push_back (i*10); //  first: 10 20 30 40 50
16
17   second.resize(first.size());     // allocate space
18   transform (first.begin(), first.end(), second.begin(), op_increase);
19                                                   // second: 11 21 31 41 51
20
21   transform (first.begin(), first.end(), second.begin(), first.begin(), op_sum);
22                                                   //  first: 21 41 61 81 101
23
24   cout << "first contains:";
25   for (it=first.begin(); it!=first.end(); ++it)
26     cout << " " << *it;
27
28   cout << endl;
29   return 0;
30 }
时间: 2024-10-20 14:49:53

transform详解的相关文章

CSS3属性transform详解之(旋转:rotate,缩放:scale,倾斜:skew,移动:translate)

CSS3属性transform详解之(旋转:rotate,缩放:scale,倾斜:skew,移动:translate) 在CSS3中,可以利用transform功能来实现文字或图像的旋转.缩放.倾斜.移动这四种类型的变形处理,本文将对此做详细介绍. 一.旋转 rotate 用法:transform: rotate(45deg); 共一个参数"角度",单位deg为度的意思,正数为顺时针旋转,负数为逆时针旋转,上述代码作用是顺时针旋转45度. 二.缩放 scale 用法:transform

第98天:变换transform详解

变换transform详解 变换函数 translateX(x):在水平方向移动元素,正值向右移动. translateY(y):在垂直方向移动元素,正值向下移动. translate(x,y):在水平和垂直方向移动元素. scaleX(x):在水平方向缩放元素(1.0是原始大小).使用负值会将元素绕y轴翻转,创建一个从右到左的镜像. scaleY(y):在垂直方向缩放元素(1.0是原始大小).使用负值会将元素绕x轴翻转,创建一个从下到上的镜像. scale(x,y):在水平和垂直方向缩放元素.

CSS3动画特效——transform详解

CSS3动画特效——transform详解 公共css .common{ width:100px; height:100px; margin:20px auto; background-color:#75C934; text-align:center; line-height:100px; font-size:18px; } 1)transform:rotate(value); 元素旋转 value为旋转度数 默认顺时针旋转. value若为负值则逆时针旋转. .box{ /*过渡效果*/ -w

iOS开发——UI篇OC&amp;transform详解

transframe属性详解 1. transform属性 在OC中,通过transform属性可以修改对象的平移.缩放比例和旋转角度 常用的创建transform结构体方法分两大类 (1) 创建“基于控件初始位置”的形变 CGAffineTransformMakeTranslation(平移) CGAffineTransformMakeScale(缩放) CGAffineTransformMakeRotation(旋转) (2) 创建“基于transform参数”的形变 CGAffineTra

CSS3属性transform详解之(旋转:rotate,缩放:scale,倾斜:skew,移动:translate)(转载)

在CSS3中,可以利用transform功能来实现文字或图像的旋转.缩放.倾斜.移动这四种类型的变形处理,本文将对此做详细介绍. 一.旋转 rotate 用法:transform: rotate(45deg); 共一个参数“角度”,单位deg为度的意思,正数为顺时针旋转,负数为逆时针旋转,上述代码作用是顺时针旋转45度. 二.缩放 scale 用法:transform: scale(0.5)  或者  transform: scale(0.5, 2); 参数表示缩放倍数: 一个参数时:表示水平和

css3中的变形 transform详解

一.变形-旋转 ratate()函数 通过指定的角度参数使元素相对原点进行旋转.它主要在二维空间内进行操作,设置一个角度值,用来指定旋转的幅度.如果这个值为正值,元素相对原点中心顺时针旋转:如果这 个值为负值,元素相对原点中心逆时针旋转. transform:rotate(-20deg) 如下图: 二.变形- 扭曲 skew()函数 扭曲skew()函数能够让元素倾斜显示.它可以将一个对象以其中心位置围绕着X轴和Y轴按照一定的角度倾斜.这与rotate()函数的旋转不同,rotate()函数只是

[HTML5+CSS3]Transform详解

Transform字面上就是变形,改变的意思.在CSS3中transform主要包括以下几种:旋转rotate.扭曲skew.缩放scale和移动translate以及矩阵变形matrix.下面我们一起来看看CSS3中transform的旋转rotate.扭曲skew.缩放scale和移动translate具体如何实现,老样子,我们就从transform的语法开始吧. 语法: transform : none | <transform-function> [ <transform-fun

css3系列之transform 详解skew

skew skewx skewy skewX()  倾斜该元素,里面填的是角度,下面↓ 你会看到,随着元素被倾斜,高度居然不变.聪明的你,一定会知道,高度不变,代表了,Y轴被拉伸了. 跟scale 同理,改变的是 轴的刻度. → scale skew 也就是 skewx  和 skewy 的结合,  skew(45deg, 45deg); 原文地址:https://www.cnblogs.com/yanggeng/p/11278028.html

CSS3 transform 属性详解(skew, rotate, translate, scale)

写这篇文章是因为在一个前端QQ群里,网友 "小豆豆" (应他要求要出现他的网名......) ,问skew的角度怎么算,因为他看了很多文章还是不能理解skew的原理.于是,我觉得有必要写个博文,帮助那些不懂的人,让他们看了此文就懂. 进入正题: 先说明下,电脑屏幕的XY轴跟我们平时所说的直角坐标系是不一样的.如下图: 图上的盒子就是代表我们的电脑屏幕,原点就是屏幕的左上角,竖直向下为X轴正方向,水平向右为Y轴正方向. 1.倾斜skew 先看图 每个图下方都有skew的参数.粗的红色的线