{"title":"permutations\uff082\uff09","categories":["C++"],"url":"https://inamori.hateblo.jp/entry/20100913/p1","html":"<iframe src=\"https://hatenablog-parts.com/embed?url=https%3A%2F%2Finamori.hateblo.jp%2Fentry%2F20100913%2Fp1\" title=\"permutations\uff082\uff09 - inamori\u2019s diary\" class=\"embed-card embed-blogcard\" scrolling=\"no\" frameborder=\"0\" style=\"display: block; width: 100%; height: 190px; max-width: 500px; margin: 10px 0px;\"></iframe>","provider_name":"Hatena Blog","provider_url":"https://hatena.blog","author_name":"inamori","type":"rich","width":"100%","height":"190","version":"1.0","description":"\u3061\u3087\u3063\u3068\u5de5\u592b\u3057\u3066\u3042\u307e\u308a\u30b3\u30d4\u30fc\u304c\u767a\u751f\u3057\u306a\u3044\u3088\u3046\u306b\u66f8\u304d\u76f4\u3057\u307e\u3057\u305f\u3002 template<typename T> class cPermutations : public cIterable<vector<T>> { typedef typename vector<T>::iterator IT; template<typename T> class cPerm { typedef shared_ptr<cPerm<T>> PTR; IT begin; IT end; PTR g; const int n; int k; bool first; public: cPerm(IT b, IT e, in\u2026","blog_url":"https://inamori.hateblo.jp/","blog_title":"inamori\u2019s diary","author_url":"https://blog.hatena.ne.jp/inamori/","image_url":null,"published":"2010-09-13 00:00:00"}