有.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