C ++ не может вставить в пустой вектор - PullRequest
0 голосов
/ 27 апреля 2020

Когда я пытаюсь вставить вектор в пустой вектор, я получаю ошибку длины:

#include <iostream>
#include <vector>
using namespace std;
int main()
{
  vector<int> v1;
  vector<int> v2 = {1};
  v1.insert(v2.begin(), v2.end(), v1.end());

}

и

terminate called after throwing an instance of 'std::length_error'
  what():  vector::_M_range_insert

Это ожидаемое поведение? Я думал, что вставка автоматически увеличит размер вектора при необходимости. И он должен вставляться сразу за v1.end (), заполняя вектор, даже если он пуст.

1 Ответ

1 голос
/ 27 апреля 2020

правильный синтаксис:

v1.insert(v1.begin(), v2.begin(), v2.end());

или:

v1.insert(v1.end(), v2.begin(), v2.end());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...