复制矢量到矢量

时间:2012-08-29 23:05:24

标签: c++ vector copy

我正在尝试使用`std :: copy``

将一个向量复制到另一个向量
vector<note_name> notes =  AppSettings::getAllNotes();
copy(notes.begin(), notes.end(), song.noteList);

函数getAllNotes()返回vector<note_name>,noteList是同一类型的公共成员。当我试着奔跑时,我得到了:

enter image description here

所以我认为向量使用类型note_name存在一些问题,但我不知道如何修复它。有什么想法吗?

1 个答案:

答案 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