Код находится на pastebin: http://pastebin.com/UknqKvMq
Таким образом, я переставляю все возможные схемы 0,1,2,3,4,5,6,7,8,9 (т.е. Формируя 10-значные числа). Я сохраняю каждую компоновку в куче, вызывая
new int[10]
возвращаемый указатель я нажимаю на
static vector<int*>
Теперь, когда я нажимаю указатель на вектор, данные, на которые указывает первый элемент, изменяются (и, возможно, все остальные объекты, на которые указывает вектор). У меня есть ряд операторов печати в коде, показывающем это, при вызове sleep() для замедления процесса. Почему это происходит?
Вы вызываете Permute
, который Permute
расположение указателя inputCopy->arrangement
в ваш статический вектор. Затем сразу же удалите его. Это означает, что ваш вектор содержит оборванные указатели.
Я не знаю, что вы пытаетесь сделать здесь, но вы можете написать это в нескольких строках кода:
Использование std::next_permutation
std::vector<int> v{0,1,2,3,4,5,6,7,8,9};
// std::sort(v.begin(), v.end());
do {
for(const auto&i:v)
std::cout<<i;
std::cout<<std::endl;
} while(std::next_permutation(v.begin(), v.end()));