Добавление и удаление значений в QVector

206
01 июня 2018, 01:10

Мне нужно написать функции которые добавляют и удаляют значения в QVector.

Я создаю вектор

QVector<std::unique_ptr<Category>> mCategories;

Создаю две функции:

 void Category::addCategory(std::unique_ptr<Category> category)
 {
     mCategories.push_back(category);
 }
 void Category::removeCategory(int categoryIndex)
 {
     mCategories.remove(categoryIndex);
 }

Ошибка:

D:\Qt\5.8\msvc2015_64\include\QtCore\qvector.h:641: error: C2280: 'std::unique_ptr<Task,std::default_delete<_Ty>>::unique_ptr(const std::unique_ptr<_Ty,std::default_delete<_Ty>> &)': attempting to reference a deleted function
with
[
_Ty=Task
]   

Но я не понимаю почему выдает, нужна ваша помощь.

Answer 1

Объекты std::unique_ptr являются некопируемыми, однако являются перемещаемыми, соответственно вместо копирования их следует перемещать:

mCategories.push_back(::std::move(category));
READ ALSO
Непонятное применение typedef

Непонятное применение typedef

Я студент, и недавно появилось задание написать простейший графический редактор по исходникам преподаВ принципе, ничего сложного, но вот...

179
Инициализация указателя

Инициализация указателя

Объясните пожалуйста новичку: Часто видел в коде профессионалов и толковых программистов как они объявляли указатель в классе, но инициализировали...

194
Перевод из float в *char [закрыт]

Перевод из float в *char [закрыт]

Как перевести из float в *char? Смотрите,мне нужно перевести из float в *char, и записать его в char vectorВектором пользоваться умею ,но не знаю как перевести...

213