У меня есть источник std::vector<double>
, который я хотел бы разделить в соответствии с индексами, содержащимися в std::vector<int>
. Разделение включительно, и начало следующего среза должно начинаться там, где остановился предыдущий, начиная с начала исходного вектора.
Например:
{ 1.1, 2.2, 3.3, 4.4, 5.5, 6.6, 7.7, 8.8, 9.9 } -> source
{2, 4, 7 } -> split indices
и после применения функции должно получиться:
{1.1, 2.2, 3.3}
{4.4, 5.5}
{6.6, 7.7, 8.8}
У меня есть это, которое не даст мне третий вектор и так далее:
vector<double> nets{ 1.1, 2.2, 3.3, 4.4, 5.5, 6.6, 7.7, 8.8, 9.9 };
vector<int> ends{2, 4, 7 };
vector<vector<double>> periodnumbers;
vector<double> numbers;
for (int i = 0; i < nets.size(); i++)
{
double temp;
temp = nets[i];
numbers.push_back(temp);
for (int j = 0; j < ends.size(); j++)
{
if (i == ends[j])
{
periodnumbers.push_back(numbers);
numbers.clear();
}
}
}