C STL优先级队列获得BAD_ALLOC
C++ STL priority queue getting bad_alloc
我正在尝试使用stl优先级队列,定义为:
template <typename T>
using min_queue = std::priority_queue<T, std::vector<T>, std::greater<T>>;
运行以下代码时:
Label kNN(int k, const Matrix &trainingSet, const std::vector<Label> &trainingLabels, Matrix &evSet, int i1, const DistanceF &f) {
Timer timer("kNN Timer");
min_queue<std::pair<double, Label>> distances;
for (int i = 0; i < trainingSet.rows(); ++i) {
distances.push(std::pair<double, Label>(f(trainingSet, i, evSet, i1), trainingLabels[i]));
}
int i = 0;
int labels[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
while (!distances.empty() && i < k) {
labels[(int)distances.top().second]++;
distances.pop();
++i;
}
int maximum = 0;
for (int j = 0; j < 10; ++j) {
if (labels[j] > maximum) {
maximum = j;
}
}
return (double)maximum;
}
我有以下错误:
malloc:***对象的错误0x230000000:未分配释放指针
问题最终处于代码的不同部分:复制矩阵时,要复制的行数中存在错误,这导致了源矩阵的最后一行不要复制到目标矩阵。因此,向量无法正常初始化,并导致了不良的异差错误。
相关文章:
- 使用来自 Excel VBA 的 C++ dll 时"Bad DLL calling convention" - 如何解决?
- C++17 编解码器在将标准::字符串转换为标准::字符串时抛出"bad conversion"
- 对于代理容器上的迭代器来说,"least bad implementation"可能是什么?
- 组件对象模型 (COM):IMalloc::Alloc 在哪里分配内存?
- 获取错误:在抛出"std::bad::alloc"的实例后终止调用 what(): std::bad_alloc
- 为什么 GetSystemMetrics (SM_CXVIRTUALSCREEN) 返回'bad'值?
- 将 lambda 传递给 STL 集时出错"bad function call"
- 新的 C++14 位分隔符处"Bad Character" Eclipse Oxygen 错误
- 使用 #define 被认为是"bad practice"吗?
- "400 Bad request"使用 OpenSSL BIO 进行请求时
- CGAL:Hausdorff距离不良Alloc
- 解密文件AES_256_CBC返回"bad decrypt"错误
- 在C++流中,eof(),fail(),bad()和good()有什么区别
- C STD ::初始化类对象中的Alloc错误错误
- make / gcc:"bad build"的可能原因是什么?
- 什么是地址0xbaddc0dedeadbead "Bad decode dead bead"
- 在多线程环境中,什么可能导致"bad file descriptor"?
- 尝试解决HackerBank上的BFS挑战时出现错误的alloc异常
- "std::vector"在调整大小时引发"bad allocation"异常
- 尝试使用 execp、dup2 和管道实现 shell,挂起或"bad file descriptor"