文字列に係数を掛けて、繰り返しシーケンスを持つ文字列を作成する簡単な方法はありますか? たとえば、python で取得することができ3*'ab'
ますababab
。
C++でこのようなことはできますか? 文字列コンストラクターは char のみを受け取ります。
ループカウンターに応じて一連の文字列をつなぎ合わせる方法を探しています。
文字列に係数を掛けて、繰り返しシーケンスを持つ文字列を作成する簡単な方法はありますか? たとえば、python で取得することができ3*'ab'
ますababab
。
C++でこのようなことはできますか? 文字列コンストラクターは char のみを受け取ります。
ループカウンターに応じて一連の文字列をつなぎ合わせる方法を探しています。
いつでもオーバーロードできます*
このようなもの :
std::string operator*(std::string const &str, size_t times)
{
std::string res;
res.reserve(times * str.size());
for (size_t i=0; i<times; ++i)
res += str;
return res;
}
std::string s="ab";
std::cout<<s*3<<std::endl;
「別の for ループに入る必要がないことを望んでいました。– Dochevsky 」の編集
あなたが使用することができstd::fill_n
ますstd::stringstream
#include<algorithm>
#include<sstream>
//...
std::stringstream ss;
std::fill_n( std::ostream_iterator< const char* >( ss ),
3, "ab" ); //Replace ss with std::cout, to output on standard output
std::string str =ss.str();
std::cout<<str;