2015-10-07 55 views
1

我有一些代碼,嘗試使用恆定的參考「尾巴」來訪問向量的最後一個元素:如何使用常量引用訪問矢量<int*>的元素?

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 

剩餘部分的語法是什麼?

+1

你的問題還不清楚。你想不斷引用你的向量中的最後一個項目?你想簡單地知道爲什麼輸出是不同的? –

回答

0

剩餘部分的語法是什麼?

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

v.back() = (int*)2 
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