gpt4 book ai didi

c++ - 使用 next_permutation 函数后如何保存字符串/整数?

转载 作者:行者123 更新时间:2023-11-28 06:09:12 24 4
gpt4 key购买 nike

我是 c++ 的新手,在解决问题时我不得不排列一个数字。我发现最简单的方法是使用 C++ 的 next_permutation 函数。但为此我需要将它转换为字符串并再次转换回整数。问题是,在排列完成后,我无法将所有排列后的数字存储在数组中。它只保存最后打印的数字。

str = "131";
std::sort(str.begin(), str.end());
do
{
std::cout<<str<<endl;
int number;
istringstream(str)>>number;
for(int z=0;z<3;z++)
{
saveInArray[z]=number;
}

} while( std::next_permutation(str.begin(), str.end()));

最佳答案

以下代码与您的代码等效,只是它使用简单的整数循环而不是 next_permutation() 来生成数字:

int saveInArray[4];
// generate
for(int i=0; i!=4; ++i) {
for(int k=0; k!=4; k++) {
saveInArray[k] = i;
}
}
// output
for(int k=0; k!=4; ++k) {
std::cout << saveInArray[k] << std::endl;
}

请阅读这段代码并思考它的输出是什么。然后,运行代码并将其与您的期望进行比较。它应该向您展示您的代码如何根本没有按照您的预期进行,并且从那里也应该清楚原因。

请注意,建议使用容器是由于排列的数量,它根本不是像上面的 4 那样的固定数字!

关于c++ - 使用 next_permutation 函数后如何保存字符串/整数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31624754/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com