Tôi tìm thấy thao tác cập nhật trên thiết lập tẻ nhạt vì không có API như vậy trên cppreference. Vì vậy, những gì tôi hiện đang làm là sth như thế này:Cập nhật thiết lập C++ STL là tẻ nhạt: Tôi không thể thay đổi một phần tử tại vị trí
//find element in set by iterator
Element copy = *iterator;
... // update member value on copy, varies
Set.erase(iterator);
Set.insert(copy);
Về cơ bản, trình trả về vòng lặp của Bộ là một const_iterator và bạn không thể thay đổi giá trị trực tiếp.
Có cách nào tốt hơn để thực hiện việc này không? Hoặc có lẽ tôi nên ghi đè thiết lập bằng cách tạo của riêng tôi (mà tôi không biết chính xác cách thức hoạt động ..)
Tạo một hàm nội dòng nếu bạn thấy bằng cách sử dụng 2 câu lệnh đã quá tẻ nhạt. – kennytm
KennyTM đánh vào đầu. Không có nhược điểm hiệu quả để làm điều này, do đó, chỉ cần làm điều đó rồi! :-P –
Nếu bạn viết một hàm cập nhật, bạn có thể muốn mô hình hóa nó theo cùng cách như Boost.MultiIndex: http://www.boost.org/doc/libs/release/libs/multi_index/doc/tutorial/basics .html # ord_updating –