Как перемешать значение полей ```struct```

У меня есть структрура node, которая отображает узел дерева

    int id;
    node* parent;
    std::vector<node> children;
    node(int id, node* parent) {
        this->id = id;
        this->parent = parent;
    }
    node(int data) : node(data,  nullptr){};

    void add_children(const vector<node>& nodes) {
        for (auto node : nodes) {
            children.push_back(node);
        }
    }
};

Дан std::vector<node> этих узлов. Каким образом я могу перемешать id узлов между собой, иначе говоря, перемешать детей


Ответы (1 шт):

Автор решения: DmitryK

Для перемешивания элементов контейнеров есть функция std::shuffle().
Ещё можно вручную менять элементы сколько-то раз между собой с помощью std::swap().

→ Ссылка