我对 C++ 编程没有太多经验,我想做的是以下几点:
1) 创建一个以字符数组为输入的函数(例如'abb')
2) 该函数将计算 char 数组的所有 premutations 并将它们存储在一个向量中
3) 该函数将返回这个 char 数组向量
谁能给我一个简单的例子,如何在 C++ 中做到这一点?我用谷歌搜索,但找不到我正在寻找的确切内容:P
例如,输入将是“abb”,函数将返回一个包含字符数组的向量:“abb”、“bab”和“bba”
您可以使用next_permutation
:
std::vector<std::vector<char>> p(std::vector<char> v)
{
std::vector<std::vector<char>> result;
std::sort(v.begin(), v.end());
do
{
result.push_back(v); // result.emplace_back(v);
}
while(std::next_permutation(v.begin(), v.end()));
return result;
}
要使用:
auto v = p({'a','b','c'});
for (auto &c : v)
{
for (auto &x : c)
cout << x;
cout << "\n";
}
输出:
abc
acb
bac
bca
cab
cba