在这两种方法之间向向量插入值有什么区别:
vector<int> vectorlist (12);
vectorlist[12]=23;
Run Code Online (Sandbox Code Playgroud)
与:
vector<int> vectorlist (12);
vectorlist.at(12)=23;
Run Code Online (Sandbox Code Playgroud)
.at(...)正在进行绑定检查,同时[]运算符没有,即超出范围.
请参阅此处的文档:
http://www.cplusplus.com/reference/vector/vector/at/
"该函数自动检查n是否在向量中的有效元素的范围内,如果不是,则抛出out_of_range异常(即,如果n大于或大于其大小).这与成员运算符[]形成对比,这不会检查边界."
要么:
http://www.cplusplus.com/reference/vector/vector/operator[]/
"类似的成员函数vector :: at与此操作符函数具有相同的行为,除了对vector :: at进行绑定检查,并通过抛出out_of_range异常来通知请求的位置是否超出范围."
稍微偏离主题,但你不应该使用"vectorlist"术语来表示向量.起初,我以为你会因为某些原因而拥有列表数据.
所以,给你一个真实世界的例子:当你确定范围内的索引时,你可以使用非边界检查变量,因为这将导致稍快的代码.
| 归档时间: |
|
| 查看次数: |
7367 次 |
| 最近记录: |