java vector 删除元素_vector.erase(begin(vector))将删除vector的LAST元素

下列

void PlayListModel::removeTrack(int track) //does not work

{

qDebug()<

assert(track >= 0);

if (not mTracks.empty() and static_cast(track) < mTracks.size())

{

auto iterator = begin(mTracks) + track;

qDebug()<getName();

mTracks.erase(iterator);

emit NeedRefreshView();

}

}

将始终删除mTracks的最后一个元素(类型为std :: vector),尽管迭代器指向正确的元素 .

我的AudioTrackModel运算符和构造函数:

AudioTrackModel::AudioTrackModel(const QString& path) :

mPath(path),

mFile(path)

{

qDebug()<

TagHandler TagHandler(path);

if (TagHandler.hasTags() == false)

{

mName = mFile.baseName();

} else {

storeName(TagHandler.getTitle());

storeArtist(TagHandler.getArtist());

mDiscNumber = TagHandler.getDisc();

mTrackNumber = TagHandler.getTrack();

storeAlbum(TagHandler.getAlbum());

qDebug()<

qDebug()<

}

mDuration = TagHandler.getDuration();

}

AudioTrackModel::AudioTrackModel(AudioTrackModel&& other) :

mName(other.mName),

mPath(other.mPath),

mFile(other.mFile),

mDuration(other.mDuration),

mDiscNumber(other.mDiscNumber),

mAlbum(other.mAlbum),

mArtist(other.mArtist),

mTrackNumber(other.mTrackNumber),

mCurrent(other.mCurrent)

{

}

AudioTrackModel::AudioTrackModel(const AudioTrackModel& other) :

mName(other.mName),

mPath(other.mPath),

mFile(other.mFile),

mDuration(other.mDuration),

mDiscNumber(other.mDiscNumber),

mAlbum(other.mAlbum),

mArtist(other.mArtist),

mTrackNumber(other.mTrackNumber),

mCurrent(other.mCurrent)

{

}

AudioTrackModel& AudioTrackModel::operator=(AudioTrackModel&& other)

{

mPath =other.mPath;

mFile = other.mFile;

mDuration = other.mDuration;

mDiscNumber = other.mDiscNumber;

mAlbum = other.mAlbum;

mArtist = other.mArtist;

mTrackNumber = other.mTrackNumber;

mCurrent = other.mCurrent;

return *this;

}

AudioTrackModel& AudioTrackModel::operator=(const AudioTrackModel& other)

{

mPath =other.mPath;

mFile = other.mFile;

mDuration = other.mDuration;

mDiscNumber = other.mDiscNumber;

mAlbum = other.mAlbum;

mArtist = other.mArtist;

mTrackNumber = other.mTrackNumber;

mCurrent = other.mCurrent;

return *this;

}

这个问题让我发疯,我不知道发生了什么 .

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值