2014-02-16 51 views
2

我是新手在c + +。我想創建向量的值。函數push_back值向量在c + +

#include <vector> 
#include <iostream> 
using namespace std; 

void pushVector (vector <int> v, int value){ 
v.push_back(value); 
} 

int main(){ 
vector <int> intVector; 
pushVector (intVector, 17); 
cout << intVector.empty(); // 1 
} 

正如你所看到的,我的函數在向量中的值不是push_back。我的錯誤在哪裏?

+3

'矢量&v'工作完成。 – 2014-02-16 12:36:17

+1

「通過價值傳遞」與「通過參考傳遞」,查找它。 –

+0

你的錯誤是試圖首先包裝'push_back'。你爲什麼這樣做? – jrok

回答

3

您需要通過引用將該向量傳遞給函數。你寫這個函數的方式,它在它的體內創建了一個向量的副本,並且該向量在函數之外保持不變。

#include <vector> 
#include <iostream> 
void pushVector (vector <int>& v, int value){ 
v.push_back(value); 
} 

int main(){ 
vector <int> intVector; 
pushVector (intVector, 17); 
cout << intVector.empty() // 1 
} 

here是對該問題的簡要說明。

+0

Ty for answer。我在哪裏可以找到關於在C++中使用這個「&」符號的信息? –

+2

@OrangeFox自從語言發明以來,看到這個列表的建議](http://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list) – WhozCraig