1.terminate called without an active exception
原因:主线程结束, 对象资源释放,导致子线程拿到非法资源
解决办法:主线程 join等待子线程
2.basic_string::_S_create异常
如下代码导致
std::vector<std::string> tmp_vec_set;
for (int i = 0; i < 800; ++i) {
tmp_vec_set[0] += ("dcsaasdasdcrwqwreqcasdasdczxa_" + std::to_string(i) + ",");
}
for (int i = 100; i < 500; ++i) {
tmp_vec_set[1] += ("dcsaasdasdcrwqwreqcasdasdczxa_" + std::to_string(i) + ",");
}
for (int i = 200; i < 600; ++i) {
tmp_vec_set[2] += ("dcsaasdasdcrwqwreqcasdasdczxa_" + std::to_string(i) + ",");
}
修改方法:
std::vector<std::string> tmp_vec_set;
std::string str_tmp;
for (int i = 0; i < 800; ++i) {
str_tmp += ("dcsaasdasdcrwqwreqcasdasdczxa_" + std::to_string(i) + ",");
}
tmp_vec_set.emplace_back(str_tmp);
str_tmp.clear();
for (int i = 100; i < 500; ++i) {
str_tmp += ("dcsaasdasdcrwqwreqcasdasdczxa_" + std::to_string(i) + ",");
}
tmp_vec_set.emplace_back(str_tmp);
str_tmp.clear();
for (int i = 200; i < 600; ++i) {
str_tmp += ("dcsaasdasdcrwqwreqcasdasdczxa_" + std::to_string(i) + ",");
}