我有这样的代码(大约)在CPP的应用程序:为什么这会使用std ::的变换原因EXC_BAD_ACCESS
QList<Foo> rawAssets = getlist();
QVector<std::pair<QString, QString>> assets;
std::transform(rawAssets.begin(), rawAssets.end(), assets.begin(), makePair);
这导致exc_bad_access
扔当我再次使用assets
。
但是,如果我将assets.begin()
更改为std::back_inserter(assets)
,那么它按我的预期工作。
我发现了教程std::transform
显示这两种用法。为什么我的情况是错的?
'assets.begin()因此等于assets.end()'这是我错过的那篇文章。谢谢! – Daenyth