Каков наилучший способ извлечь часть вектора? Если бы у меня был
std::vector<int> v1(9);
for(int i = 0; i < 9; i++)
v1[i] = i + 1;
Мне нужен код, который
std::vector<int> v2(2);
второй и третий элементы v1. Я должен сделать цикл или есть самый умный способ?
Попробуйте это, используя форму итератора vector
конструктора
std::vector<int> v2(v1.begin() + 1,v1.begin() + 3);
Если v2
уже существует, используйте assign
v2.assign(v1.begin() + 1,v1.begin() + 3);
Вы можете использовать std :: copy(), предположим, что если вы хотите вставить первый и второй элементы из v1 в начало v2, вы можете использовать следующее.
std::copy ( v1.begin()+1, ,v1.begin() + 3, v2.begin() );