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

时间:2015-10-07 04:43:34

标签: c++ pointers syntax

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

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

剩余部分的语法是什么?

2 个答案:

答案 0 :(得分:0)

  

剩余部分的语法是什么?

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

v.back() = (int*)2

答案 1 :(得分:0)

您要找的是int*&vector.back()将返回对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