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

vector<int>a;a.push_back(1);a.push_back(3);intb=a.front();b=2;cout<<a.at(0);那为什么这个代码输... vector<int> a;
a.push_back(1);
a.push_back(3);
int b=a.front();
b=2;
cout<<a.at(0);
那为什么这个代码输出的不是2,对a[0]完全没有影响呢?
展开
 我来答
zjfaok
推荐于2016-09-10 · TA获得超过6806个赞
知道大有可为答主
回答量:4146
采纳率:62%
帮助的人:1620万
展开全部
std::vector 的 front() 成员函数返回第一个元素的引用。对于 const 容器,返回的是 const 引用(不能修改元素的值)。

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

除了 vector 之外,C++标准库的所有其他容器类也都提供了 front() 函数,它们的行为都是一样的。
匿名用户
推荐于2018-03-01
展开全部

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

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

若定义

int &b=a.front();

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

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友e2dbec6
推荐于2016-02-07 · TA获得超过273个赞
知道小有建树答主
回答量:367
采纳率:0%
帮助的人:255万
展开全部
int b=a.front;返回的是vector<int> 自己定义的类型,所以返回的值只是一个拷贝值,修改无效
追问
那就是说这个引用和c++里面说的引用不是一个意思吗?
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式