Ich versuche derzeit, eine Zeichenfolge durch die Nummer 2 zu trennen und die Sub-Zeichen, die ich in einen 2D-Vektor, das Problem ist, dass jedes Mal, wenn ich versuche, bekomme ich eine Segmentierung Fehler, wenn ich Versuchen Sie, die zweite Reihe von Zeichen in den Vektor zu schieben. Nachdem ich einige Dinge versucht habe, denke ich, dass das Problem in dem Vektor "einige" liegt, nachdem ich den Inhalt des Vektors gelöscht habe. Es scheint mir, dass ich nach dem Clearing nicht mehr in der Lage bin, Werte in den Vektor zu pushen. Ich hoffe, dass jemand irgendwelche Vorschläge hat, weil ich feststecke.pushing strings in multidimensionalen Vektor C++
std::string str = "11121112111";
std::vector<int> some;
std::vector<std::vector<int> > somemore;
for (unsigned int i = 0; i < str.length(); i++)
{
if (str[i] == '2')
{
somemore.push_back(some);
some.clear();
}
else
{
some.push_back(1);
}
}
for (unsigned int i = 0; i <= 3; i++)
{
for (unsigned int j = 0; j <= 3; j++)
{
std::cout << somemore[i][j] << std::endl;
}
}
Dies kann nicht Ihr tatsächlicher Code sein. Ihre Variablennamen stimmen nicht mit Ihren Deklarationen überein. Bitte stellen Sie eine [mcve] bereit und Sie sollten den Code zumindest mit einem Debugger durchgehen, um herauszufinden, wann der Code tatsächlich default ist. – NathanOliver
Tut mir leid, habe vergessen, dass ich "Som" zu "Som" und "Sommore" zu "Somemore" geändert habe, aber ich denke das ist nicht das Problem, da mein Problem ein anderes ist. Aber trotzdem danke – Erry07
Sie haben zwei Probleme: Die erste ist, dass Sie nicht die letzte 'some' auf' somemore' schieben, weil es keine '2' am Ende von' str' gibt, die zweite ist, dass Ihre letzte Schleife sollte sei '<3', da dein letztes Array ein' 3x3' und kein '4x4' wäre. – Holt