st es zulässig, einem vorab zugewiesenen Vektor in einer bereichsbasierten for-Schleife über diesen Vektor Elemente hinzuzufüge

Ich verwende den C ++ - Compiler von Visual Studio 2015 Update 1 und diesen Codeausschnitt:

#include <iostream>
#include <vector>

using namespace std;

int main()
{
  vector<int> v{3, 1, 4};

  v.reserve(6);

  for (auto e: v)
    v.push_back(e*e);

  for (auto e: v)
    cout << e << " ";

  return 0;
}

Release-Version läuft gut, aber Debug-Version produziertvector iterators incompatible Fehlermeldung. Warum das

Bevor Sie es als doppelte Frage an @ kennzeichnElemente während der bereichsbasierten Schleife c ++ 11 @ zu einem Vektor hinzufüg, bitte lies meine Antworthttps: //stackoverflow.com/a/35467831/21915 mit gegenteiligen Argumenten.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage