Permutations in C++

Tags:

이야.. 이런게 있는것도 몰랐다니 할말이 없음;

#include
#include
#include
#include

using namespace std;

int main()
{
int alphabets[] = {1, 2, 3, 4, 5};
vector vi(alphabets, alphabets + 5);
for (int i = 0; i < 5*4*3*2*1; ++i) { copy(vi.begin(), vi.end(), ostream_iterator(cout, ” “));
cout << endl; next_permutation(vi.begin(), vi.end()); } return EXIT_SUCCESS; } [/code] 결과는 1 2 3 4 5 1 2 3 5 4 1 2 4 3 5 1 2 4 5 3 1 2 5 3 4 1 2 5 4 3 1 3 2 4 5 1 3 2 5 4 1 3 4 2 5 1 3 4 5 2 1 3 5 2 4 1 3 5 4 2 ... 5 4 3 2 1

Comments

5 responses to “Permutations in C++”

  1. JM Avatar

    do
    {
    copy(vi.begin(), vi.end(), ostream_iterator<int>(cout, ” “));
    cout << endl;
    } while(next_permutation(vi.begin(), vi.end());

    가 더 편한듯 ~

  2. 이원구 Avatar

    거의 알고리즘 책 앞부분에 나오는 함수들은 거의 다 있죠. :-)

    http://www.sgi.com/tech/stl/stl_index.html

    그래도 이런 함수들은 뭐에 써야 되는지라도 알 수 있는 놈들이라 괜찮았는데 요새 보는 tr1 책에 나오는 C99에서 따온 것들이라는 수학 관련 함수들은 대략 좌절이더군요.

    이젠 공업수학책에 나오던 함수들을 라이브러리에 추가하는 중인듯… ;-)

  3. MKSeo Avatar
    MKSeo

    @JM: 음 좌절입니다. 또 그런게 있군요. 전 STL책이나 새로 봐야할듯;;
    @이원구: 아.. 전문가들은 그런책을 보는군요. 사실 무슨 책을 보실까 궁금했었어요.

  4. 이원구 Avatar

    전문가는요… 책은 그냥 유명한 사람이 쓴 책이 나왔다라고 하면 사서 보는 편이죠. 이 책도 나온지 얼마 안된 따끈따끈한 책인데 무슨 책이든 첫번째 printing의 책들은 오류가 많다는 것이 문제죠.

    그런데 tr1 에 포함된 것들이 대부분 boost에 있던 것들이라 새로운 내용은 거의 없네요. C99 관련 빼고 말이죠. :-)

    그리고 얼마전 여기서 봤던 nexon 문제던가 풀어보다가 대략 좌절하고… (2.4이하로 안떨어지더라는… oTL) 알고리즘 책도 천천히 다시 보고 있답니다. 열심히 읽어서 다시 한번 도전해보기로… :-)

  5. MKSeo Avatar
    MKSeo

    그것도 중요한거 같아요. 뭐가 tr1이고 뭐가 아닌지… boost가 싫다는 사람에게 적어도 그 라이브러리를 쓰는 타당한 이유를 제시할 수 있잖아요..

Leave a Reply

Your email address will not be published. Required fields are marked *