【发布时间】:2021-02-24 01:47:25
【问题描述】:
我有一个函数:
std::list<Song> SongCollection::getSongsForArtist(std::string artistName) const {
std::list<Song> songs;
auto addArtistSongs = [=](Song* song) {
if (song->m_artist == artistName) {
return song;
}
};
std::copy_if(m_songCollection.begin(), m_songCollection.end(), std::back_inserter(songs), addArtistSongs);
return songs;
}
应该根据我的 lambda 函数将 Song 对象添加到 list<Song>。
m_collection 是我的指针向量,它包含 Songs,可以基于 artistName 复制到 std::list。
试过back_inserter,但这似乎不起作用。
错误:
错误 C2679 二进制“=”:未找到采用“sdds::Song *const”类型右侧操作数的运算符(或没有可接受的转换);
以为我必须创建一个复制构造函数/赋值,但这也没有用。
【问题讨论】: