我有一些代码尝试使用常量引用" 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
剩余部分的语法是什么?
答案 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