我对C ++编程没有多少经验,我想做的是以下内容:
1)创建一个以char数组作为输入的函数(例如'abb')
2)该函数将计算char数组的所有预表达并将它们存储在向量
中3)该函数将返回char数组的向量
有人能给我一个快速的例子,说明如何在C ++中完成这项工作?我用谷歌搜索但我无法找到我正在寻找的东西:P
例如,输入为'abb',函数将返回包含char数组的向量:'abb','bab'和'bba'
答案 0 :(得分:3)
您可以使用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