#include<vector>

#include<string.h>

using namespace std;

#pragma warning(disable:4996)


void GetValue1(vector<int> v, int idx)

{

if (idx >= v.size())

{

for (int i = 0; i<v.size(); i++)

{

printf("%d ", v[i]);

}

printf(" ");

return;

}


for (int i = idx; i < v.size(); i++)

{

int temp = v[idx];

v[idx] = v[i];

v[i] =temp;

GetValue1(v, idx + 1);

temp = v[idx];

v[idx] = v[i];

v[i] = temp;

}

}


int main()

{

vector<int> v;


v.push_back(1);

v.push_back(2);

v.push_back(3);

v.push_back(4);

v.push_back(5);

//GetValue(v, 0);

//printf(" ");

//memset(visit, 0, sizeof(visit));


//v.pop_back();

//v.pop_back();

GetValue1(v, 0);

return 0;

}


포인터가 아니라 값 복사라서 값이 커지면 느려질 가능성 농후함