C++で単一の繰り返し文字列を作る

RubyHaskellでは特定の文字を繰り返して、繰り返し文字列を作るやり方は知ってる。だけどC++で単一の文字の繰り返した文字列を取得する方法はわからなかったのでメモする。

#include <string>
#include <iostream>

int main(){
    std::string str(5, 'x');
    std::cout << str;
}
/*
xxxxx
*/

書き方は第一引数にくり返す回数を設定して、第二引数にくり返す文字を設定すればいい。

詳しく書くと、

// str::string(size_type count, charT ch);
// std::string(いくつ生成するか, 生成する文字);
std::string str(5, 'x');

という風になる。

おまけ

Rubyの場合

str = "x" * 3
puts str #=> xxx

Haskellの場合

ghci> concat $ replicate 3 "x"
"xxx"

ghci> :t replicate
replicate :: Int -> a -> [a]
ghci> :t concat
concat :: [[a]] -> [a]