2017-02-28 78 views
-2

.at(vect.size())= x之間的區別;和vect.push_back(x);

int x{5}; 
std::vector<int> vect; 
vect.push_back(x); 

int x{5}; 
std::vector<int> vect; 
vect.at(0) = x; 
+10

是。如果你嘗試一下,你會很快發現它。 – nwp

+0

書籤[cppreference.com](http://cppreference.com),讓它成爲你最好的朋友。去那裏_所有的時間_,你會學到很多,而不必問。現在,只是[閱讀此](http://en.cppreference.com/w/cpp/container/vector/push_back) – paddy

+0

我做了這正是我問這個問題,案件vect.push_back(x)扔一個例外,而vect.at(0)的工作,這是我所期望的相反。 – Jack

回答

2

push_back之間的任何差異將一個新對象插入到載體中。 at返回對現有對象的引用。如果索引超出範圍(例如在示例代碼中),則at會引發異常。

0

您可以使用vector.push_back填充空向量。但由於vector爲空,所以使用vector.at(),它會引發異常。


除外:

std::vector<int> vector(10); // for 10 integer 
vector.at(0) = 3; 
std::cout << vector[ 0 ] << '\n'; // 3 
相關問題