如何在C++中获取List中特定位置的元素

如何在C++中获取List中特定位置的元素

由于 std::list 在内部以双向链表的形式存储元素,因此列表没有随机访问运算符[]可通过索引访问元素,因此要访问任何 K th 位置的元素,需要从开头一个一个迭代到 K th 元素,而不是迭代 K 次。为此,使用 STLstd::advance() 函数进行线性时间查找。

语法:

advance(InputIterator& it, Distance N)

参数: 该函数接受两个参数,即要遍历列表的迭代器以及要移动到的位置。 位置可以为负以进行随机访问和双向迭代器。

返回类型: 该函数没有返回类型。

下面是上述方法的C ++实现:

// 使用advance的C++程序访问列表的Kth元素
#include <bits/stdc++.h>
using namespace std;

// Driver Code  
int main()
{
    // 创建带有初始值100的列表
    list<int> li(5, 100);
  
    // 将20和30插入列表
    li.push_back(20);
    li.push_back(30);
  
    // 列表的元素是
    // 100, 100, 100, 100, 100, 20, 30
  
    // 将迭代器初始化为列表的开头 
    list<int>::iterator it = li.begin();
  
    // 将迭代器移动5个元素
    advance(it, 5);
  
    // 打印迭代器处的元素
    cout << *it;
  
    return 0;
}
20

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程