Нужно перегрузить оператор "=" (присваивания для следующих типов данных)
enum Suit { clubs, diamonds, hearts, spades };
vector< Suit > CardSuit[];
Suit su = Suit(1);
CardSuit[0] = su; <- чтобы работало так????
vector<Suit> CardSuit[];
Это что-то странное - вы объявляете CardSuit как массив векторов, так что CardSuit[0] - это вектор, а вы присваиваете ему отдельный элемент.
Чтобы работало так, как вы хотите - нужно сделать CardSuit вектором с уже выделенным как минимум нулевым элементом, типа
vector<Suit> CardSuit(1);
Или, что разумнее -
vector<Suit> CardSuit;
и добавлять
CardSuit.push_back(su);
Продвижение своими сайтами как стратегия роста и независимости