一下这段代码可以很清晰的表述出这四个函数的区别
ilist是一个list<int>类型
if (!ilist.empty()) {
// val 和val2 指向相同的元素
list<int>::reference val = *ilist.begin();
list<int>::reference val2 = ilist.front();
// last 和last2指向相同的元素
list<int>::reference last = *--ilist.end();
list<int>::reference last2 = ilist.back();
}