我有這樣的代碼(大約)在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