Я знаю, как извлечь подмножество из вектора нормалей и как извлечь подмножество из вектора, который находится внутри другого вектора. Теперь у меня вопрос, как я могу извлечь подмножества всех векторов, которые находятся внутри другого вектора.
Например: у меня есть три вектора внутри другого:
std::vector<std::vector<int>> my_vec;
std::vector<int> vec_1{1,2,3,4,5};
std::vector<int> vec_2{11,12,13,14,15};
std::vector<int> vec_3{21,22,23,24,25};
my_vec.push_back(vec_1);
my_vec.push_back(vec_2);
my_vec.push_back(vec_3);
Что я хочу сделать сейчас создать новый вектор, который содержит подмножество третьего и четвертого элемента каждого вектора. Я попытался это:
#include<vector>
#include <iostream>
int main()
{
std::vector<std::vector<int>> my_vec;
std::vector<int> vec_1{1,2,3,4,5};
std::vector<int> vec_2{11,12,13,14,15};
std::vector<int> vec_3{21,22,23,24,25};
my_vec.push_back(vec_1);
my_vec.push_back(vec_2);
my_vec.push_back(vec_3);
// For a normal vector
std::vector<int> vec_1_subset(vec_1.begin()+2,vec_1.begin()+4);
for (auto& element: vec_1_subset)
{
std::cout<<element<<std::endl;
}
// For extracting from a single vector inside another vector
std::vector<int> my_vec_subset((my_vec[0]).begin()+2,(my_vec[0]).begin()+4);
for (auto& element: my_vec_subset)
{
std::cout<<element<<std::endl;
}
// For several vectors inside a vector ?
std::vector<std::vector<int>> my_vec_test_subset(my_vec.begin()+2,my_vec.begin()+4);
return 0;
}
Последняя попытка создает сообщение об ошибке.