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を何回か完了すればいいので、コードを見てみましょう.
#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は大文字と小文字の変換です.