Tôi muốn thay đổi phần tử trong một set
, vì vậy tôi đã sử dụng set<T>::iterator
. Tuy nhiên, trình biên dịch lập luận "phần tử là const". Sau đó, tôi nhận ra rằng set<T>::iterator
là một const_iterator
...Làm cách nào để thay đổi phần tử đã đặt?
Vì vậy, làm cách nào tôi có thể thay đổi thành phần? Xóa nó và sau đó chèn một cái mới?
Tuy nhiên, cần lưu ý rằng một số thay đổi đối với phần tử không ảnh hưởng đến cách nó được sắp xếp. Nếu bạn muốn thực hiện thay đổi mà bạn chắc chắn không ảnh hưởng đến thứ tự sắp xếp, luôn có 'const_cast' là phương sách cuối cùng. Rủi ro và không đẹp, nhưng tuy nhiên. – jogojapan
thanks.I biết điều đó. Vì vậy, đây là cách duy nhất để sửa đổi phần tử? –
Vì 'xóa' không ném trừ khi mã người dùng gọi nó ném, có lẽ tốt hơn nên chèn phần tử mới và sau đó xóa phần tử cũ. Điều đó mang lại cho bạn cơ hội bảo đảm ngoại lệ mạnh mẽ. –