A commonly unknown std::vector pitfall
-
-
Das ist kein Common Pitfall von std::vector sondern einfach ein Bug in den Optimierungen von der C++ Standard Library vom VC++.
-
Shade Of Mine schrieb:
Das ist kein Common Pitfall von std::vector sondern einfach ein Bug in den Optimierungen von der C++ Standard Library vom VC++.
D.h. man müsste, falls man mit VS arbeitet, zuerst eine Kopie von
v.front()machen und dann die Kopie anpush_backübergeben?Also praktisch so:
int main() { int ar[] = { 10,20,30 }; vector<int> vec(ar,ar+3); vec.push_back( int(vec.front()) ); }Ist ja total doof.
-
wie in dem Kommentaren des VC-Entwicklers steht: es funktioniert auf VC.
It's a headache because it's yet another tricky thing we have to get right. We've broken push_back() in the past, and emplace_back() is currently broken. It's certainly not our greatest headache, though.