нашел много сообщений с этой ошибкой, но никто из них не помог. Я звоню в функцию, чтобы сохранить прочитанные книги, выпущенные клиентом с карты транзакций, а затем im считывая цену книг с карты BookDetails и сохраняя данные на карте customerBillList с вектором, умноженным на -1 как ключ, так что они расположены в порядке убывания (по возрастанию в отрицательном) ... но эта функция дает мне приведенную выше ошибку .. функцияОшибка сегментации (сбрасывается ядром) при использовании карты для хранения упорядоченных данных
void getCustomerBills(map<string, string> transactions,map<string, string> bookDetails, map<double, string> &customerBillList)
{
map<string, string>::iterator transactionsIterator = transactions.begin();
for (; transactionsIterator != transactions.end(); ++transactionsIterator)
{
double customerBill = 0;
string customerID = transactionsIterator->first;
string transactionsString = transactionsIterator->second;
int length = transactionsString.length();
for (int i = 0;i < length; ++i)
{
string book = "";
while (transactionsString[i] != ',' and i < length)
{
book = book + transactionsString[i];
++i;
}
map<string, string>::iterator iteratorBookDetails = bookDetails.find(book);
string bookCost = "";
string bookDetailsString = iteratorBookDetails->second;
for (int j = 0; j<bookDetailsString.length() and bookDetailsString[j] != ',' ; ++j)
{
bookCost = bookCost + bookDetailsString[j];
}
customerBill = customerBill + atof(bookCost.c_str());
}
if (customerBillList.count((customerBill)* -1) == 0)
customerBillList[(customerBill)* -1] = customerID;
else
customerBillList[(customerBill)* -1] = customerBillList[(customerBill)* -1] + "," + customerID;
}
}
делать некоторые тыкать я узнал, что значение двойного customerBill продолжает изменяться сама по себе каждый раз, когда транзакция итератор петли ...
здесь карты только в случае, если вам нужно их сделки:
Key Value
C12397 P342,P8,P563,P456
C3452 P546,P8,P673,P675
C1238 P1
C12397 P8,P673,P4
bookDetails:
key Value
P342 500,Black Holes and Baby Universes
P8 90,Love in the time of Cholera
P675 23,Number Theory and Cryptography
P563 1000,Lord of the Rings Box Set
P456 12,Da Vinci Code
P546 20,Linux Device Drivers
P673 45,The Great Indian Novel
P1 34,Predictably Irrational
P42 44,The Hitchhiker’s Guide to the Galaxy
P99 99,Problems in Physic
ли кто-нибудь увидеть, что проблема здесь? любая помощь будет оценена ..
Возможно, нам известно, какая строка кода возникает ошибка –
Ошибка сегментации не дает номера строки и im, используя онлайн-компилятор, поэтому на самом деле не использовать точки останова .. если бы я знал, что, вероятно, решил бы проблему ..: ( – Pundit
Вот почему у нас есть отладчики –