Nachdem ich mir die Kommentare angesehen habe, habe ich den Code durchgesehen und einen Fehler gefunden.Vector nicht dereferenzierbar
Es scheint nach einiger Bastelei ich mit diesem Fehler konfrontiert wurde:
Debug error: vector iterator is not dereferencable.
ich 100% sicher bin, dass es in dem Vektor innerhalb assingthreads ist.
Dies ist der neu hinzugefügten Code, der den Fehler laicht:
void historical::writeData(std::vector<std::vector<std::wstring>> in, const string& symbol) {
std::cout << "Sending data to database connector" << std::endl;
std::vector<std::vector<std::wstring>> temp;
while (!in.empty()) {
for (int i = 0; i < 5; i++) {
temp.push_back(in.back());
in.pop_back();
}
assignthreads(temp, symbol);
temp.clear();
}
}
void historical::assignthreads(std::vector<std::vector<std::wstring>> partVec, const string& symbol) {
int i = 0;
std::thread threads[5];
std::vector<std::vector<std::wstring>>::iterator it;
for (it = partVec.end();
it != partVec.begin();
it--) {
std::shared_ptr<database_con> sh_ptr(new database_con);
threads[i] = std::thread(&database_con::start, sh_ptr, *it, symbol);
partVec.pop_back();
i++;
}
for (auto& th : threads) th.join();
}
Es tut mir leid, derjenige sein zu wählen, um Ihre erste Frage zu schließen, aber wie Sie sicher von den anderen gut erhaltenen Fragen gesehen haben, die Sie angeschaut haben, http://www.stackoverflow.com ist kein Debugging-Dienst. Wir nehmen keine Programme auf und spucken aus, wie man sie repariert. Wir sind hier, um beim Verstehen zu helfen. Wenn der Programmierer die abstürzende Linie findet, geben Sie das [Minimale, vollständige, überprüfbare Beispiel] (http://stackoverflow.com/help/mcve) eines Absturzes von dieser Linie ein. (Oft ist der Prozess des Erstellens dieses Beispiels ausreichend, um diesen Fehler für Sie zu lösen.Aber wenn nicht, dann bekommst du Hilfe. –
Absolut gut. Im Moment erreiche ich, da ich im Grunde genommen Apeshit mache, weil alles, was ich tue, in irgendeiner Art von Fehler aufsteigt. – geostocker
Beginnen Sie klein. Von Ihrem 'main' läuft nur eine kleine Teilmenge des Codes. Möglicherweise müssen Sie noch andere Fragen stellen, um herauszufinden, wie Sie das [Minimal, Complete, Verifable, Example] (http://stackoverflow.com/help/mcve) erstellen können. Nicht darüber stressen, es ist alles Lernen. –