思路:

set容器会对加入的数据进行自动升序排序,但是容器中的元素是唯一的。所以这里采用的是multiset容器。输入数据后,直接输出容器中前k个元素即可。

代码:

using namespace std;
int main(){
    int num,k;
    cin>>num>>k;
    multiset<int> data;
    int tmp=0;
    
    for(int i=0;i<num;i++){
        cin>>tmp;
        data.insert(tmp);
    }
    multiset<int>::iterator it=data.begin();
    for(int i=0; i<k && it!=data.end();i++,it++){
        cout<<*it;
        if(i < k-1){
            cout<<" ";
        }
    }
    return 0;
}