如何在 class 构造函数中使用参数初始化 std::array 的大小?

How to use parameter to initialize the size of std::array in a class constructor?

例如:

#Include <array>

class UnionFind final {
 public:
  explicit UnionFind(int numbers) {
    // ???
  }

 private:
  std::array<int, ???> array_;
};

我想在构造函数UnionFind(int numbers)中将array_初始化为std::array<int, numbers>,但我不知道该怎么做。

std::array的大小必须在编译时指定,如:

template <std::size_t numbers>
class UnionFind final {
public:
  UnionFind() {}

private:
  std::array<int, numbers> array_;
};

然后(假设大小固定为3)

UnionFind<3> u;

如果要在运行时指定大小,可能要使用std::vector:

class UnionFind final {
public:
  explicit UnionFind(int numbers) : array_(numbers) {}

private:
  std::vector<int> array_;
};