C++ 实现topK算法

C++ 实现topK算法

# scores数组为std::vector
// topK
// 排序
std::vector 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(scores.size(), K);
std::vector 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]);
}

你可能感兴趣的:(C++,深度学习)