我正在尝试使用`std :: copy``
将一个向量复制到另一个向量vector<note_name> notes = AppSettings::getAllNotes();
copy(notes.begin(), notes.end(), song.noteList);
函数getAllNotes()
返回vector<note_name>
,noteList是同一类型的公共成员。当我试着奔跑时,我得到了:
所以我认为向量使用类型note_name
存在一些问题,但我不知道如何修复它。有什么想法吗?
答案 0 :(得分:7)
您也需要输出迭代器。如果noteList
已经具有所需的大小,请说:
copy(notes.begin(), notes.end(), song.noteList.begin());
如果它为空并且您想要插入复制的范围,#include <iterator>
并说:
copy(notes.begin(), notes.end(), std::back_inserter(song.noteList));
然而,正如@Mike指出的那样,说出以下其中一条可能更简单:
song.noteList = notes; // keep both
AppSettings::getAllNotes().swap(song.noteList); // dispose of the temporary