2017-02-28 80 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 
相关问题