std::vector 的 front() 成员函数返回第一个元素的引用。对于 const 容器,返回的是 const 引用(不能修改元素的值)。
对于非空的容器a(容器的成员函数 a.empty() 返回 false),a.front() 等价于 *(a.begin()) ;对于空的容器,a.front() 的行为是未定义的,一些实现会在调试时提示 assertion fail。
除了 vector 之外,C++标准库的所有其他容器类也都提供了 front() 函数,它们的行为都是一样的。
front()返回的的确是第一个元素的引用。
但是你定义的b并不是一个引用,操作b不会对a中的元素造成影响。
若定义
int &b=a.front();
则对b的操作会影响a中第一个元素。
int b=a.front;返回的是vector