Ответы:
Для этого вам не нужны списки инициализации:
std::vector<int> vector1(length, 0);
std::vector<double> vector2(length, 0.0);
vector(length)должно работать?
ZEROwith эффективно без использования циклов for ??????
std::vector<int> vec(42);