c++ vector 中的at
时间: 2023-10-30 09:02:18 浏览: 52
c++ vector中的at()函数用于访问vector中指定位置的元素,并且会进行边界检查。相比之下,使用[]操作符也可以实现对vector的访问,但不会进行边界检查。
在给定的代码示例中,使用了at()函数来访问vector aaa和arr中的元素。在第一个示例中,at()函数被用于将vector aaa中的元素设置为true。在第二个示例中,at()函数被用于读取和写入vector arr中的元素。
根据给定的代码和结果,我们可以看到使用at()函数的执行时间相对较长。在第一个示例中,at()函数的执行时间为19170毫秒,而直接使用[]操作符的执行时间为1127毫秒。这是因为at()函数在每次访问元素时都会进行边界检查,而[]操作符则不会进行边界检查,所以at()函数的执行时间较长。
因此,如果我们确定访问的位置是有效的,我们可以使用[]操作符来提高访问速度。但是,如果我们不能确定访问的位置是否有效,为了避免访问越界导致的错误,应该使用at()函数进行访问。
相关问题
c++中vector的at函数
在C++中,vector的at()函数用于访问指定位置的元素,并进行边界检查。如果索引超出了vector的范围,则会抛出一个out_of_range异常。at()函数的语法如下:
```c++
reference at (size_type n);
const_reference at (size_type n) const;
```
其中,n是要访问的元素的索引,reference是元素的引用类型,const_reference是元素的常量引用类型。下面是一个使用at()函数的例子:
```c++
#include <iostream>
#include <vector>
using namespace std;
int main() {
vector<int> vec = {1, 2, 3, 4, 5};
try {
int n = vec.at(10);
cout << "The value at index 10 is: " << n << endl;
} catch (const out_of_range& e) {
cerr << "Out of Range error: " << e.what() << endl;
}
return 0;
}
```
上述代码中,我们尝试访问索引为10的元素,但是vector中只有5个元素,因此会抛出一个out_of_range异常。我们使用try-catch语句来捕获这个异常并输出错误信息。
c++ vector at函数
C++中的vector是一个动态数组,可以通过at函数访问指定位置的元素。at函数的语法如下:
```c++
reference at (size_type n);
const_reference at (size_type n) const;
```
其中,第一个版本返回一个引用,可以用于修改元素值;第二个版本返回一个常量引用,不能用于修改元素值。如果n超出了vector的范围,则会抛出一个out_of_range异常。
例如,以下代码创建了一个包含5个整数的vector,并输出第3个元素的值:
```c++
#include <iostream>
#include <vector>
using namespace std;
int main()
{
vector<int> v = {1, 2, 3, 4, 5};
cout << v.at(2) << endl; // 输出3
return 0;
}
```