c++中transform函数的应用

transform函数的应用

作用

transform函数的作用是:将某操作应用于指定范围的每个元素。transform函数有两个重载版本:
transform(first,last,result,op);
//first是容器的首迭代器,last为容器的末迭代器,result为存放结果的容器,op为要进行操作的一元函数对象或sturct、class。

transform(first1,last1,first2,result,binary_op);
//first1是第一个容器的首迭代器,last1为第一个容器的末迭代器,first2为第二个容器的首迭代器,result为存放结果的容器,binary_op为要进行操作的二元函数对象或sturct、class。
//二元操作先不管

注意:第二个重载版本必须要保证两个容器的元素个数相等才行,否则会抛出异常。

看一个例子:利用transform函数将一个给定的字符串中的小写字母改写成大写字母,并将结果保存在一个叫second的数组里,原字符串内容不变。
我们只需要使用transform的第一个重载函数,当然我们也可以使用for_each函数来完成再copy几次就行了,现在来看一下代码:

#include 
#include 
using namespace std;
char op(char ch)
{
    if(ch>='A'&&ch<='Z')
        return ch+32;
    else
        return ch;
}
int main()
{
    string first,second;
    cin>>first;
    second.resize(first.size());
    transform(first.begin(),first.end(),second.begin(),op);
    cout<
#include 
using namespace std;

int main() {
	// your code goes here
	ios::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);
	string str;
	cin>>str;
	int n = str.length(), x = 0;
	for(int i = 0;i n/2)
	    transform(str.begin(), str.end(), str.begin(), ::toupper);
	else
	    transform(str.begin(), str.end(), str.begin(), ::tolower);
	cout<

tolower和toupper是大小写的转换。

你可能感兴趣的:(c++中transform函数的应用)