如何使用常量引用访问 vector<int*> 的元素?

How to access element of vector<int*> using constant reference?

本文关键字:int 元素 gt lt 常量 何使用 引用 访问 vector      更新时间:2023-10-16

我有一些代码尝试使用常量引用"tail"来访问vector的最后一个元素:

vector<int> v;
v.push_back(1);
printf("%dn",v.back());
int& tail=v.back();
tail=2;
printf("%dn",v.back());

输出为

1
2

现在我想有另一个代码具有类似的功能,但将int替换为int*:

vector<int*> v;
v.push_back((int*)1);
printf("%pn",v.back());
//remain part

,输出应为

0x1
0x2

剩余部分的语法是什么?

剩余部分的语法是什么?

int*& tail=v.back();
tail = (int*)2;

v.back() = (int*)2

您正在寻找的是int*&vector.back()将返回对int指针的引用。

vector<int*> v1;
v1.push_back((int*)1);
printf("%pn",v1.back());
int*& tail1=v1.back();
tail1=(int*)2;
printf("%pn",v1.back());

输出
0x1
0x2