Вам наверняка понадобится что-то вроде этого:
vector<vector<int>> vec;
vector<int> v;
v.reserve(p.size());
for (auto &&i : p) {
vector<int> temp(i);
for (auto &&j : temp)
j = U.RandomNormal(4000, 7000);
v.push_back(accumulate(temp.begin(), temp.end(), 0));
vec.push_back(move(temp));
}
Вместо
for (auto &&j : temp)
j = U.RandomNormal(4000, 7000);
вы можете напрямую использовать:
std::generate(temp.begin(), temp.end(), [&U] () { return U.RandomNormal(4000, 7000); });
Если вам не нужно vec
, т.е. просто нужны значения внутри v
, сделайте что-то вроде:
vector<int> v;
v.reserve(p.size());
for (auto &&i : p) {
int sum = 0;
for (int j = 0; j < i; ++j)
sum += U.RandomNormal(4000, 7000);
v.push_back(sum);
}