Tôi cần phải xóa một phần tử khỏi một số std::list
sau khi tìm thấy nó với std::find
. Hành vi gọi std::list::erase
với số end()
của danh sách là gì? trường hợp của tôi là một cái gì đó như thế này:Hành vi xóa `kết thúc()` của một `std :: list` là gì?
std::list<T> mylist;
T value;
std::list::iterator it = std::find(mylist.begin(), mylist.end(), value);
std::list::iterator next = mylist.erase(it);
cplusplus.com nói:
Nếu vị trí (hoặc phạm vi) là hợp lệ, chức năng không bao giờ ném (đảm bảo không ném) trường hợp ngoại lệ. Nếu không, nó gây ra hành vi không xác định.
nhưng những gì tôi không biết là liệu end()
được coi là hợp lệ ở đó hay không.
'end()' là một trong quá khứ phần tử cuối cùng. –
cplusplus.com tương tự bên ngoài giới hạn của các nguồn có uy tín. Xem cppreference.com để thay thế. – Potatoswatter
@Potatoswatter: Internet nằm ngoài giới hạn của các nguồn có uy tín. Xem đặc tả ngôn ngữ để thay thế. –