vector<int> result;
for(int i=0;i<k;i++){
result[i]=pri_que.top().first;
pri_que.pop();
}
报错了
在代码中,vector result没有分配足够的空间,因此尝试向其索引写入元素将导致 undefined behavior。
在使用 vector 存储结果时,必须在调用 push_back() 方法之前将其大小调整为 k,例如:
vector<int> result(k);
或者上述代码改成
vector<int> result(k);
for(int i=0;i<k;i++){
result[i]=pri_que.top().first;
pri_que.pop();
}