C++STL的vector中front()是返回第一个元素的应用吗?

2024-11-10 04:43:28
推荐回答(3个)
回答1:

std::vector 的 front() 成员函数返回第一个元素的引用。对于 const 容器,返回的是 const 引用(不能修改元素的值)。

对于非空的容器a(容器的成员函数 a.empty() 返回 false),a.front() 等价于 *(a.begin()) ;对于空的容器,a.front() 的行为是未定义的,一些实现会在调试时提示 assertion fail。

除了 vector 之外,C++标准库的所有其他容器类也都提供了 front() 函数,它们的行为都是一样的。

回答2:

front()返回的的确是第一个元素的引用。

但是你定义的b并不是一个引用,操作b不会对a中的元素造成影响。

若定义

int &b=a.front();

则对b的操作会影响a中第一个元素。

回答3:

int b=a.front;返回的是vector 自己定义的类型,所以返回的值只是一个拷贝值,修改无效