如何使用常量引用访问 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
我有一些代码尝试使用常量引用 "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