I can create constexpr std::array:
constexpr std::array values {1,2,3,4,5};
It works fine. But I cannot create
For c++ version at least prior C++2a:
std::vector uses a dynamic memory allocation. Operator new can't be used in constexpr methods, thus std::vector will never be constexpr, constexpr constructor can't be declared for it.
std::array doesn't use dynamic memory allocation, it is allocated in stack. It has no any problem with rules of creation constexpr objects and can be constexpr.