From fcf50e1eafee305e3f0bd34064f988a2ac8f5e5d Mon Sep 17 00:00:00 2001 From: wangzhengquan <wangzhengquan85@126.com> Date: 星期一, 24 八月 2020 16:32:40 +0800 Subject: [PATCH] modify iterator --- algorithm/IndirectAlg.c | 11 +++++++---- 1 files changed, 7 insertions(+), 4 deletions(-) diff --git a/algorithm/IndirectAlg.c b/algorithm/IndirectAlg.c index 69640eb..f9a3d51 100644 --- a/algorithm/IndirectAlg.c +++ b/algorithm/IndirectAlg.c @@ -81,18 +81,21 @@ while (!mterminate.load()) { std::this_thread::sleep_for(std::chrono::seconds(this->keepTime * 2)); //sleep(this->keepTime); - for(iter = statusMap.begin(); iter != statusMap.end(); iter++) { + for(iter = statusMap.begin(); iter != statusMap.end();) { status = iter->second; if (status != nullptr) { // cout<< "iter " << iter->first <<' '<< iter->second << status->lastTime << endl; // printf("%ld, %ld, %ld\n", time(NULL), status->lastTime, (time(0) - status->lastTime)); - if(difftime(time(NULL), status->lastTime) > this->keepTime*2) { + if(difftime(time(NULL), status->lastTime) > this->keepTime * 2) { std::cout << status->id << "鑴辩鐩戞帶鍖�, remove from map\n"; delete status; - statusMap.erase(iter); - } + + iter = statusMap.erase(iter); + continue; + } } + iter++; } } -- Gitblit v1.8.0