2010-11-05 19 views
5

Tôi có một số std::set<int>n mục trong đó. Và tôi muốn loại bỏ các yếu tố lớn hơn n-k và giữ nguyên tố đầu tiên (ít nhất) k. Tôi nên làm như thế nào? Có chức năng được xác định trước cho điều này không?Chia bộ (C++)

Trả lời

9

A std::set được đặt hàng.

std::set<int>::const_iterator i = myset.begin(); 
std::advance(i, k); 
myset.erase(i, myset.end()); 
+2

'std :: trước (i, k); ', chắc chắn? –

+1

Chắc chắn, tôi tự hỏi tôi đang nghĩ gì. – Benoit

+1

Không được là 'std :: set :: iterator' thay vì' std :: set :: const_iterator'? –

Các vấn đề liên quan