0

コードはペーストビンにあります: http://pastebin.com/UknqKvMq

したがって、0、1、2、3、4、5、6、7、8、9 (つまり、10 桁の数字を形成する) のすべての可能な配置を並べ替えています。呼び出して、各アレンジメントをヒープに保存しています

new int[10]

返されたポインタを

static vector<int*>

ここで、ポインターをベクターにプッシュすると、最初のアイテムが指すデータが変更されます (おそらく、ベクターが指す他のすべてのアイテムも)。これを示すコードには、プロセスを遅くするための sleep() 呼び出しを含む多数の print ステートメントがあります。なぜこうなった?

4

2 に答える 2

1

ここで何をしようとしているのかわかりませんが、数行のコードでそれを書くことができます:

使用する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()));
于 2013-10-13T10:53:28.350 に答える