c++におけるtransform関数の応用
1563 ワード
transform関数の応用
さぎょう
transform関数の役割は、指定した範囲の各要素に操作を適用することです.transform関数には2つのリロードバージョンがあります:transform(first,last,result,op);//firstはコンテナの最初の反復器であり、lastはコンテナの最後の反復器であり、resultは結果を格納するコンテナであり、opは操作する一元関数オブジェクトまたはsturct、classである.
transform(first1,last1,first2,result,binary_op);//first 1は第1の容器の最初の反復器であり、last 1は第1の容器の最後の反復器であり、first 2は第2の容器の最初の反復器であり、resultは結果を格納する容器であり、binary_opは、操作する二元関数オブジェクトまたはsturct、classです.//二元操作はともかく
注:2番目のリロード・バージョンでは、2つのコンテナの要素の数が等しいことを保証する必要があります.そうしないと、例外が放出されます.
一例を見てください.transform関数を使用して、与えられた文字列の小文字を大文字に書き換え、結果をsecondという配列に保存します.元の文字列の内容は変わりません.transformの最初のリロード関数を使用するだけで、もちろんfor_も使用できます.each関数は、copyを何回か完了すればいいので、コードを見てみましょう.
tolowerとtoupperは大文字と小文字の変換です.
さぎょう
transform関数の役割は、指定した範囲の各要素に操作を適用することです.transform関数には2つのリロードバージョンがあります:transform(first,last,result,op);//firstはコンテナの最初の反復器であり、lastはコンテナの最後の反復器であり、resultは結果を格納するコンテナであり、opは操作する一元関数オブジェクトまたはsturct、classである.
transform(first1,last1,first2,result,binary_op);//first 1は第1の容器の最初の反復器であり、last 1は第1の容器の最後の反復器であり、first 2は第2の容器の最初の反復器であり、resultは結果を格納する容器であり、binary_opは、操作する二元関数オブジェクトまたはsturct、classです.//二元操作はともかく
注:2番目のリロード・バージョンでは、2つのコンテナの要素の数が等しいことを保証する必要があります.そうしないと、例外が放出されます.
一例を見てください.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は大文字と小文字の変換です.