有.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;
有.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;
push_back
之間的任何差異將一個新對象插入到載體中。 at
返回對現有對象的引用。如果索引超出範圍(例如在示例代碼中),則at
會引發異常。
std::vector::push_back將爲對象分配內存並插入到容器中。
std::vector:at旨在用於使用索引檢索現有對象。如果對象不在容器中,則會拋出異常
您可以使用vector.push_back
填充空向量。但由於vector
爲空,所以使用vector.at()
,它會引發異常。
除外:
std::vector<int> vector(10); // for 10 integer
vector.at(0) = 3;
std::cout << vector[ 0 ] << '\n'; // 3
是。如果你嘗試一下,你會很快發現它。 – nwp
書籤[cppreference.com](http://cppreference.com),讓它成爲你最好的朋友。去那裏_所有的時間_,你會學到很多,而不必問。現在,只是[閱讀此](http://en.cppreference.com/w/cpp/container/vector/push_back) – paddy
我做了這正是我問這個問題,案件vect.push_back(x)扔一個例外,而vect.at(0)的工作,這是我所期望的相反。 – Jack