vector at c++示例
时间: 2024-06-02 16:06:42 浏览: 16
vector是C++标准库中的一个容器,它能够动态地调整自己的大小。vector中的元素是连续存储的,可以通过下标或迭代器来访问。at()函数是vector容器提供的一个成员函数,用于返回指定位置的元素,并进行边界检查。
以下是一个vector at c++的示例:
```
#include <iostream>
#include <vector>
using namespace std;
int main() {
vector<int> myVector = {1, 2, 3, 4, 5};
// 访问元素
cout << "Element at index 2: " << myVector.at(2) << endl;
// 边界检查
try {
cout << "Element at index 10: " << myVector.at(10) << endl;
} catch (const std::out_of_range& e) {
cout << "Out of range error: " << e.what() << endl;
}
return 0;
}
```
输出结果为:
```
Element at index 2: 3
Out of range error: vector::_M_range_check: __n (which is 10) >= this->size() (which is 5)
```
相关问题
c++ vector 中的at
c++ vector中的at()函数用于访问vector中指定位置的元素,并且会进行边界检查。相比之下,使用[]操作符也可以实现对vector的访问,但不会进行边界检查。
在给定的代码示例中,使用了at()函数来访问vector aaa和arr中的元素。在第一个示例中,at()函数被用于将vector aaa中的元素设置为true。在第二个示例中,at()函数被用于读取和写入vector arr中的元素。
根据给定的代码和结果,我们可以看到使用at()函数的执行时间相对较长。在第一个示例中,at()函数的执行时间为19170毫秒,而直接使用[]操作符的执行时间为1127毫秒。这是因为at()函数在每次访问元素时都会进行边界检查,而[]操作符则不会进行边界检查,所以at()函数的执行时间较长。
因此,如果我们确定访问的位置是有效的,我们可以使用[]操作符来提高访问速度。但是,如果我们不能确定访问的位置是否有效,为了避免访问越界导致的错误,应该使用at()函数进行访问。
vector at用法
`vector` 是 C++ STL 中的一个容器,可以用来存储一系列的元素。`vector` 中的每个元素都有一个对应的索引,可以使用 `vector` 的 `at` 函数来访问指定索引位置的元素。
`at` 函数的语法如下:
```c++
vector_name.at(index);
```
其中,`vector_name` 是 `vector` 的名称,`index` 是要访问的元素索引。需要注意的是,如果指定的索引超出了 `vector` 的范围,`at` 函数会抛出一个 `out_of_range` 异常。
下面是一个示例代码:
```c++
#include <iostream>
#include <vector>
using namespace std;
int main() {
vector<int> v = {1, 2, 3, 4, 5};
cout << "v[2] = " << v[2] << endl; // 使用下标访问元素
cout << "v.at(2) = " << v.at(2) << endl; // 使用 at 函数访问元素
// 尝试访问超出范围的元素索引
try {
cout << "v.at(10) = " << v.at(10) << endl;
} catch (const out_of_range& e) {
cerr << "Out of range error: " << e.what() << endl;
}
return 0;
}
```
输出结果为:
```
v[2] = 3
v.at(2) = 3
Out of range error: vector::_M_range_check: __n (which is 10) >= this->size() (which is 5)
```
可以看到,使用 `at` 函数访问元素时,如果指定的索引超出了 `vector` 的范围,会抛出一个 `out_of_range` 异常。