Почему не могу добавить элемент из вектора в вектор?

304
12 февраля 2017, 11:33
vector<int>v1{ 54,54,546,65,5,5454,35,7 };
vector<int>v3{};
for (auto it : v1)    //ни так
    v3.insert(it);
for (auto i = v1.begin(); i != v1.end(); ++i)    //ни так
    v3.insert(*i);
Answer 1

Во-первых, insert для вектора требует два параметра - куда вставлять, и что вставлять. Вы передаете только что.

Во-вторых, вообще не используйте insert с вектором - кроме самых крайних случаев... ограничивайтесь push_back().

И вообще, в вашем конкретном случае достаточно простого присваивания -

v3 = v1;

Если позарез хочется insert - то тогда уж лучше

v3.insert(v3.end(),v1.begin(),v1.end());
Answer 2

Метод insert требует указания куда вставлять элемент. Если добавлять нужно в конец:

vector<int>v1{ 54,54,546,65,5,5454,35,7 };
vector<int>v3{};
for (auto it : v1)    
    v3.push_back(it);
for (auto i = v1.begin(); i != v1.end(); ++i)  
    v3.push_back(*i);
for (auto it : v1)  
    v3.insert(v3.end(), it);
READ ALSO
Запретить подключение DLL к программе

Запретить подключение DLL к программе

Как можно реализовать запрет на подключение DLL к выполняемому процессу на программном уровне? Программа написана на C++Среда разработки Visual...

223
Создание больших файлов через WinAPI.

Создание больших файлов через WinAPI.

ЗдравствуйтеРаботаю в C++ Builder 6

267
Самодельный скроллинг кастомного view

Самодельный скроллинг кастомного view

ЗдравствуйтеИмеется кастомный view в котором помимо скролла тачпадом нужно обработать и скролл колесиком мышки

230
Выборка данных из XML

Выборка данных из XML

Что-то совсем запуталсяЕсть простейший XML файл вида

384