C++ STL-Inserter

Я новичок в C++ STL. У меня есть некоторые проблемы в приведенном ниже коде относительно вывода. Почему это не обеспечивает ожидаемый вывод?

#include<iostream>
#include<algorithm>
#include<vector>
#include<iterator>
using namespace std;
void show(vector<int> vect)
{
    for(int i=0;i<vect.size();i++)
    {
        cout<<vect[i]<<" ";
    }
}
int main()
{

    int arr[5]={ 1, 2, 3, 4, 5 };
    vector<int> vect1(arr,arr+5);
    vector<int>::iterator it;
    it=vect1.begin();
    advance(it,3);
    copy(vect1.begin(),vect1.end(),inserter(vect1,it));
    show(vect1);
    return 0;

}

Ожидаемый результат:1 2 3 1 2 3 4 5 4 5
Фактическая мощность:1 2 3 1 0 3 4 5 4 5

Может кто-нибудь помочь мне выяснить, где это пошло не так?

1 ответ

Заменить копию этой:

vect1.insert(it, std::begin(arr), std::end(arr));

где аргументы для вставки:
'it' - это позиция, которую вы хотите вставить в вектор vect1;
std:: begin (arr) - начальная позиция диапазона для вставки;
std:: end (arr) - конечная позиция диапазона для вставки.

Другие вопросы по тегам