vector容器at
时间: 2024-09-29 15:08:57 浏览: 33
`std::vector` 是 C++ 标准库中的动态数组,它提供了一种动态大小的线性表数据结构。`at()` 是 `vector` 类的一个成员函数,用于访问指定索引位置的元素,这个函数在访问过程中会进行严格的越界检查。
当你调用 `vector<T>::at(size_t index)` 时,它会返回索引 `index` 对应的元素值。如果索引 `index` 超出了向量的实际范围(即小于0或大于等于向量长度),`at()` 函数将抛出 `std::out_of_range` 异常,表示试图访问不存在的位置。
例如:
```cpp
std::vector<int> vec = {1, 2, 3};
int value = vec.at(1); // 正确,获取第二个元素,value为2
try {
int invalid = vec.at(5); // 错误,向量只有三个元素,会抛异常
} catch (const std::out_of_range& e) {
std::cout << "Index out of range: " << e.what() << '\n';
}
```
相关问题
vector容器
vector 是 C++ STL(标准模板库)中的一个容器,它支持动态数组的功能,也就是可以在运行时根据需要自动扩展数组大小。它的用法非常简单,可以通过 include<vector> 头文件来使用。
创建 vector 对象的语法如下:
```c++
std::vector<数据类型> vector名称;
```
例如:
```c++
std::vector<int> myVector; // 创建一个 int 类型的 vector
```
vector 支持类似数组的随机访问,可以使用 `[]` 运算符或者 `at()` 函数访问元素。同时,vector 还提供了许多其他有用的函数,例如 `push_back()`、`pop_back()`、`insert()`、`erase()` 等等。具体用法可以参考 C++ STL 的相关文档。
遍历vector容器
遍历vector容器有多种方法可以实现。首先,可以使用下标访问元素的方式进行遍历。通过使用for循环和下标变量,可以依次访问vector容器中的每个元素并进行操作。例如,可以使用`obj[i]`来访问第i个元素。
其次,可以使用迭代器(iterator)进行遍历。通过使用`vector<int>::iterator`类型的迭代器,可以遍历整个vector容器,并通过`*it`来访问迭代器所指向的元素。例如,可以使用以下代码进行迭代器遍历:
```
for(vector<int>::iterator it = obj.begin(); it != obj.end(); it++) {
cout << *it << ",";
}
```
此外,还可以使用基于范围的for循环进行遍历。在C++11中引入的这种循环方式可以更简洁地遍历vector容器中的元素。例如,可以使用以下代码进行基于范围的for循环遍历:
```
for(auto iter : obj) {
cout << iter << ",";
}
```
最后,也可以使用成员函数`at()`进行访问。与使用下标类似,可以通过`obj.at(i)`来访问第i个元素。不同的是,当索引超出范围时,`at()`会抛出异常,因此更加安全。例如,可以使用以下代码进行基于`at()`的遍历:[2]
```
for(int i=0; i<obj.size(); i++) {
cout << obj.at(i) << ",";
}
```
这些是遍历vector容器的几种常见方法,根据具体情况选择适合的方法进行遍历。
阅读全文