C++ 实现topK算法
# scores数组为std::vector<float>
// topK
// 排序
std::vector<size_t> idx(scores.size());
std::iota(idx.begin(), idx.end(), 0);
std::sort(idx.begin(), idx.end(),
[&scores](size_t index_1, size_t index_2) { return scores[index_1] > scores[index_2]; });
// 获取K值
int k_num = std::min<int>(scores.size(), K);
std::vector<float> scores_K;
int idx_j = 0;
for (int j = 0; j < k_num; ++j) {
idx_j = idx[j];
scores_K.push_back(scores[idx_j]);
}