c++中transform函数的应用
transform函数的应用作用transform函数的作用是:将某操作应用于指定范围的每个元素。transform函数有两个重载版本:transform(first,last,result,op);//first是容器的首迭代器,last为容器的末迭代器,result为存放结果的容器,op为要进行操作的一元函数对象或sturct、class。transform(first1,last1...
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 <iostream>
#include <algorithm>
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<<second<<endl;
return 0;
}
#include <bits/stdc++.h>
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;i++)
if(isupper(str[i]))
++x;
if(x > n/2)
transform(str.begin(), str.end(), str.begin(), ::toupper);
else
transform(str.begin(), str.end(), str.begin(), ::tolower);
cout<<str;
return 0;
}
tolower和toupper是大小写的转换。
更多推荐
所有评论(0)