std::list 查找指定位置的元素
时间: 2023-07-29 09:13:31 浏览: 61
可以使用 `std::advance` 函数来实现在 `std::list` 中查找指定位置的元素。具体操作步骤如下:
1. 定义一个迭代器变量 `it`,并将其初始化为 `std::list` 的起始迭代器;
2. 调用 `std::advance` 函数,将 `it` 向前移动指定的距离,即要查找的位置;
3. 判断 `it` 是否已经到达 `std::list` 的末尾,如果是,则表示要查找的位置超出了 `std::list` 的范围;
4. 如果 `it` 指向的位置是要查找的位置,则可以通过 `*it` 访问该位置的元素。
下面是一个示例代码:
```cpp
#include <iostream>
#include <list>
#include <iterator>
int main() {
std::list<int> my_list = {1, 2, 3, 4, 5};
// 查找第3个元素
auto it = my_list.begin();
std::advance(it, 2); // 移动2个位置,即到达第3个元素
if (it == my_list.end()) {
std::cout << "查找位置超出范围\n";
} else {
std::cout << "第3个元素为 " << *it << "\n";
}
// 查找第6个元素
it = my_list.begin();
std::advance(it, 5); // 移动5个位置,即到达第6个元素
if (it == my_list.end()) {
std::cout << "查找位置超出范围\n";
} else {
std::cout << "第6个元素为 " << *it << "\n";
}
return 0;
}
```
输出结果为:
```
第3个元素为 3
查找位置超出范围
```