微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

C术语参考和迭代器

参见英文答案 > What are the differences between a pointer variable and a reference variable in C++?                                    35个
维基百科告诉我

Reference is a simple reference datatype that is less powerful but safer than the pointer type inherited from C

我正在学习C,我遇到了函数vector :: front().

在文档中它说的功能

Returns a reference to the first element in the vector.

但是,如下面的代码所示,返回值被视为不是引用而是元素本身.

vector<int> my_vector(1); // initialising a vector
my_vector.push_back(10); // inserting 10
int number = my_vector.front() + 1; // number = 11

如果my_vector.front()是对第一个元素的引用,为了访问该值,不应该使用(*)取消引用它吗?

看见那个

* my_vector.begin()== my_vector.front()== 10

我可以对迭代器做算术,我应该把迭代器想象成类似于C中的指针,并将引用视为一个值吗?

解决方法

… should I think of iterators as something similar to pointers in C,and think of reference as a value?

是的,迭代器实现类似行为的指针.

将引用视为存储的特定值的别名.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐