c++stl

Iterator to last element in std::list


#include <list>
using std::list;

int main()
{
    list <int> n;
    n.push_back(1);
    n.push_back(2);
    n.push_back(3);

    list <int>::iterator iter = n.begin();
    std::advance(iter, n.size() - 1); //iter is set to last element
}

is there any other way to have an iter to the last element in list?


Solution

  • Yes, you can go one back from the end. (Assuming that you know that the list isn't empty.)

    std::list<int>::iterator i = n.end();
    --i;