如何制作C++;函数返回字符数组的所有排列的向量 我对C++编程没有太多的经验,我想做的是以下:

如何制作C++;函数返回字符数组的所有排列的向量 我对C++编程没有太多的经验,我想做的是以下:,c++,arrays,vector,C++,Arrays,Vector,1) 制作一个以字符数组作为输入的函数(例如“abb”) 2) 该函数将计算字符数组的所有前置变量,并将它们存储在向量中 3) 函数将返回这个字符数组向量 谁能给我一个快速的例子,说明C++如何做到这一点?我在谷歌上搜索了一下,但找不到我要找的东西 例如,输入为“abb”,函数将返回一个包含字符数组的向量:“abb”、“bab”和“bba”您可以使用: C++有一个排列的函数,你可以用它。C++有一些很好的。我相信您可能会找到。+1好的,谢谢您的帮助:)顺便说一句,当我尝试运行上面的代码时,会收

1) 制作一个以字符数组作为输入的函数(例如“abb”)

2) 该函数将计算字符数组的所有前置变量,并将它们存储在向量中

3) 函数将返回这个字符数组向量

谁能给我一个快速的例子,说明C++如何做到这一点?我在谷歌上搜索了一下,但找不到我要找的东西

例如,输入为“abb”,函数将返回一个包含字符数组的向量:“abb”、“bab”和“bba”

您可以使用:


C++有一个排列的函数,你可以用它。C++有一些很好的。我相信您可能会找到。+1好的,谢谢您的帮助:)顺便说一句,当我尝试运行上面的代码时,会收到错误消息:“error:'class std::vector'没有名为'emplace_back'的成员。”。知道原因吗?这和我的编译器有关吗?哪个是GNU GCCCompiler@jjepsuomi:用
向后推
替换
向后放置
。你应该通过C++ > 11代码> STD= C++ 11 < /Cult>切换进入新的C++世界。
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