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

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

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

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

哪个输出是

1
2

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

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

输出应该是

0x1
0x2

剩余部分的语法是什么?

what is the syntax of the remain part?

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

v.back() = (int*)2

您要找的是int*&vector.back() 会 return 引用 int 指针。

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

产出

0x1
0x2