извлечение части вектора

0

Каков наилучший способ извлечь часть вектора? Если бы у меня был

std::vector<int> v1(9);

for(int i = 0; i < 9; i++)
    v1[i] = i + 1;

Мне нужен код, который

std::vector<int> v2(2);

второй и третий элементы v1. Я должен сделать цикл или есть самый умный способ?

Теги:
vector

2 ответа

5
Лучший ответ

Попробуйте это, используя форму итератора vector конструктора

 std::vector<int> v2(v1.begin() + 1,v1.begin() + 3);

Если v2 уже существует, используйте assign

v2.assign(v1.begin() + 1,v1.begin() + 3);
  • 0
    Побей меня на 5 секунд!
  • 0
    Я знаю это, но мой вектор v2 уже существует ... Я не могу использовать конструктор, так?
Показать ещё 6 комментариев
2

Вы можете использовать std :: copy(), предположим, что если вы хотите вставить первый и второй элементы из v1 в начало v2, вы можете использовать следующее.

std::copy ( v1.begin()+1, ,v1.begin() + 3, v2.begin() );

Ещё вопросы

Сообщество Overcoder
Наверх
Меню